譬如类A的构造函数
public function A(h:int):void{...}
在new A时,flex只能显示A(),
而如果定义为
public function(h:int){...}
则能显示A(h:int)。。。
2、关于flash舞台绘制的图形:(动态清空这些图形可能会用到)
对某显示元件,在flash的舞台上绘制的图形会转化为该元件的一个shape子元件,flash会根据某种法则来判断是生成多个shape还是一个就可以了(如果只有一层则肯定只有一个shape),譬如如果各层上都是普通的用绘图工具绘制出来的绘画,不管你这些图形是在一层上还是多层上,都会转化为一个shape,而如果各层上既有绘画又有文本框等其他,则可能会根据层来转换出多个shape。
测试方法:
trace(mc.numChildren);
for(var i:int=0; i<mc.numChildren; i++)
{
trace(flash.utils.describeType(mc.getChildAt(i)));
if(mc.getChildAt(i) is Shape)
(mc.getChildAt(i) as Shape).graphics.clear();
}
大家可以在舞台上乱画图,然后也加几个文本框,加一个子元件,看看舞台绘制的图形是不是被清空了。
3、不是只有moveto、lineto、curveto才会改变当前绘画位置,如果你调用了drawRect、drawRoundRect、drawCircle、drawEllipse都会导致绘画位置发生改变,这之后你如果去lineto,一定要注意此时的起始点位置不是你想象的。如下例所示:
代码如下
selecter.addEventListener(Event.CHANGE, onchange);
function onchange(evt:Event):void
{
var method:String = selecter.selectedItem.label;
this.graphics.clear();
this.graphics.beginFill(0xcc0000);
if(method == "drawrect")
this.graphics.drawRect(100,100,50,50);
else if(method == "drawcircle")
this.graphics.drawCircle(100,100,50);
else if(method == "drawellipse")
this.graphics.drawEllipse(100,100,50,20);
else
this.graphics.drawRoundRect(100,100,50,50,10);
//
this.graphics.endFill();
this.graphics.lineStyle(1, 0x000000);
//this.graphics.moveTo(100, 100);
this.graphics.lineTo(200,200);
}
4、设置一个InteractiveObject的mouseenabled为false,同时对其设置的右键菜单contextMenu也无效了。
5、hasOwnProperty来判断某对象是否有某属性,如果是protected继承来的或者private定义的私有属性均返回false,只有public定义的或者继承来的属性才会为true。
6、flash.systems.Capabilities可以获取承载 SWF 文件的系统和播放器的相关属性,如screenResolutionX、Capabilities.screenResolutionY屏幕分辨率,os当前操作系统、hasmp3是否具有mp3解码器、version播放器版本等等很多有用的信息。
7、flash的bitmapdata的draw方法中有几个参数解释下
source是任何一个实现了IBitmapDrawable的对象,flash中的displayobject均实现了该接口
matrix是一个矩阵,你可以在绘画对象前先调整对象的坐标以达到特定的效果。
colorTransform用于调整位图的颜色值。
blendMode指定生成位图的混合模式
clipRect是一个矩形,制定可用于绘制的区域,不指定就是对象全部。
smoothing只在source是bitmapdata的情况下才进行平滑处理。
不能混淆matrix和cliprect的作用。
bitmapdata的draw某个显示对象都是从该对象的注册点开始绘制bitmapdata指定的宽高内容,如果该显示对象的内容区域的左上角不是注册点,需要调整matrix平移到注册点,而cliprect只是指定可以绘画的区域,区域之外的内容将不被绘制!