Flex及AS3的百条常用知识Word文档下载推荐.docx

上传人:b****5 文档编号:17984483 上传时间:2022-12-12 格式:DOCX 页数:18 大小:27.38KB
下载 相关 举报
Flex及AS3的百条常用知识Word文档下载推荐.docx_第1页
第1页 / 共18页
Flex及AS3的百条常用知识Word文档下载推荐.docx_第2页
第2页 / 共18页
Flex及AS3的百条常用知识Word文档下载推荐.docx_第3页
第3页 / 共18页
Flex及AS3的百条常用知识Word文档下载推荐.docx_第4页
第4页 / 共18页
Flex及AS3的百条常用知识Word文档下载推荐.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

Flex及AS3的百条常用知识Word文档下载推荐.docx

《Flex及AS3的百条常用知识Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Flex及AS3的百条常用知识Word文档下载推荐.docx(18页珍藏版)》请在冰豆网上搜索。

Flex及AS3的百条常用知识Word文档下载推荐.docx

【基元数据类型和复杂数据类型好比"

值类型"

和"

引用类型"

基元数据类型类似按值传递:

varintOne:

int=1;

varintTwo:

trace(intOne==intTwo);

[注:

按照AS圣殿之路上说的,其实AS里没有按值这种说法,一切都是引用,只是不变引用而已!

所以这里说法不对]

【复杂数据类型类似按引用传递】

vararrayOne:

Array=newArray("

a"

"

b"

);

vararrayTwo:

Array=arrayOne;

trace(arrayOne==arrayTwo);

//-----------------------------------

【优化逻辑AND(&

&

)和OR(||)的小知识】

对于逻辑And(&

):

除非条件表达式的前半部分为真,否则,ActionScript不会再去求算逻辑AND运算符的后半部.如果前半部为假,整个条件表达式一定为假,所以再去求算后半部就没效率了.

对于逻辑OR(||):

除非条件表达式前半部为假,否则,ActionScript不会再去求算逻辑OR运算符的后半部,如果前半部为真,整个条件表达式一定为真.

总结:

使用逻辑AND(&

)时,把结果最可能为false的表达式放到前面;

使用逻辑OR(||)时,把结果最可能为true的表达式放到前面.

【Timer类注意事项】

不要认为Timer可以极其准确;

使用Timer时间间隔不要低于10毫秒.

【private,protected,internal,public访问权限】

private:

只能在类本身内部访问,按惯例,命名私有成员时以下划线"

_"

开头;

protected:

可以由类本身或任何子类访问.但这是以实例为基础的.换言之,类实例可以访问自己的保护成员或者父类的保护成员,但不能访问相同类的其它实例的保护成员,按惯例,命名保护成员时以下划线"

internal:

可以由类本身或者相同包内的任何类访问;

public:

可以在类内部访问,也可以由类实例访问,或者声明为static时,可以直接从类访问.

【一个函数具有未知个数的参数,用arguments对象或"

...(rest)"

符号访问它的参数】

注意:

使用"

参数会使arguments对象不可用;

privatefuncitonaverage():

void{

trace(arguments.length);

//输出参数的个数

//arguments的类型是:

object,但可以像访问数组一样去访问它

trace(arguments[1]);

//输出第二个参数

}

privatefunctionaverage(...argu):

trace(argu[1]);

//输出第二个参数,argu参数名是自定义的.

【错误处理try,catch,finally】

privatefunctiontryError():

try{

trace("

测试开始-try"

throwError();

}catch(errObject:

Error){

错误信息:

"

+errObject.message);

测试结束-catch"

return;

}finally{

虽然catch里已经有return方法,但位于return方法后面的finally里的代码依然会被执行.其实无论return方法是在try里,还是catch里,finally里的代码始终会被执行"

前面已经有return了,此处是不会再执行的.除非没有抛出错误,以使catch里的代码没有被执行"

privatefunctionthrowError():

thrownewError("

抛出错误"

【for...in与foreach...in的区别】

与for...in循环不同的是,foreach...in循环中的迭代变量包含属性所保存的值,而不包含属性的名称(或主键,索引).

【命名包路径的小技巧】

使用相应于拥有者和相关项目的包名称会比较好.按惯例来讲,包名称的开头应该是逆向的网址名称.例如,如果ExampleCorp()写了一些ActionScript3.0类,就会把所有类放在com.examplecorp包内(或者com.examplecorp的子包内).如此一来,如果英国有另一家ExampleCorp(examplecorp.co.uk)也写了一些ActionScript3.0类,只要使用包uk.co.examplecorp,就可确保唯一性.

当类属于特定应用程序的一部分时,就应该放在该应用程序特定的子包内.例如,ExampleCorp可能有个应用程序名叫WidgetStore.如果WidgetStore应用程序使用一个名为ApplicationManager的类,则此类就应该放在com.examplecorp.widgetstore包内,或者位于该包的子包内.

按惯例来说,包名称的开头是小写字母.

【隐式的取出方法(getter)和设定方法(setter)】

publicfunctiongetcount():

uint{

return_count;

publicfunctionsetcount(value:

uint):

if(value<

100){

_count=value;

}else{

throwError();

【确保类是绝不会有子类,使用final】

finalpublicclassExample{}

【super关键字的使用】

super();

//父类的构造函数,只能在类实例构造函数内部使用

super.propertyName;

//调用父类的属性,属性需要声明为public或protected

super.methodName();

//调用父类的方法,方法需要声明为public或protected

【建立常数,使用关键字const而不是var】

staticpublicconstEXAMPLE:

String="

example"

【检测播放器版本】

flash.system.Capabilities.version

对于8.5版以前的任何FlashPlayer版本,这种方法都不适用.

【判断客户端系统】

flash.system.Capabilities.os

【检测播放器类型】

flash.system.Capabilities.playerType

可能的值有:

StandAlone"

,用于独立的FlashPlayer

External"

,用于外部的FlashPlayer或处于测试模式下

PlugIn"

,用于FlashPlayer浏览器插件

ActiveX"

,用于MicrosoftInternetExplorer使用的FlashPlayerActiveX控件

【检测系统语言】

flash.system.Capabilities.language

【判断用户是否启用了IME(输入法编辑器)】

flash.system.IME.enabled

【检测屏幕的分辨率】

flash.system.Capabilities.screenResolutionX

flash.system.Capabilities.screenResolutionY

【把弹出窗口居中的算法】

X=(舞台宽/2)-(窗口宽/2)

Y=(舞台高/2)-(窗口高/2)

【控制影片配合Player的方式,包括缩放问题】

stage.scaleMode

可供选择值:

flash.display.StageScaleMode

【舞台的对齐方式】

stage.align

flash.display.StageAlign

【隐藏FlashPlayer的右键菜单】

stage.showDefaultContextMenu=false;

【检测系统是否具有音频功能】

flash.system.Capabilities.hasAudio

【检测播放器是在具有MP3解码器的系统上运行,还是在没有MP3解码器的系统上运行】

flash.system.Capabilities.hasMP3

【检测播放器能(true)还是不能(false)播放流式视频】

flash.system.Capabilities.hasStreamingVideo

【检测播放器是在支持(true)嵌入视频的系统上运行,还是在不支持(false)嵌入视频的系统上运行】

flash.system.Capabilities.hasEmbeddedVideo

【检测播放器能(true)还是不能(false)对视频流(如来自Web摄像头的视频流)进行编码】

flash.system.Capabilities.hasVideoEncoder

【显示FlashPlayer中的"

安全设置"

面板】

flash.system.Security.showSettings();

可供选择项:

flash.system.SecurityPanel

【让其它域的.swf访问本域的.swf】

在本域的.swf文件里加上:

flash.system.Security.allowDomain()

或者使用安全策略文件"

crossdomain.xml"

.在Flash8以前,这个文件必须放在.swf所在域的根目录,现在,你可以使用flash.system.Security.loadPolicyFile(),指定安全策略文件所在的位置.拒绝任何域的做法是在<

cross-domain-policy>

标签内什么也不填,安全策略文件也支持通用字符"

*"

:

<

?

xmlversion="

1.0"

---->

allow-access-fromdomain="

/>

*.Y-"

210.38.196.48"

/cross-domain-policy>

【数字的不同进制之间的转换】

parseInt(str:

String,radix:

uint=0):

Number返回十进制的数,参数radix表示要分析的数字的基数.如果省略radix,就默认为10,除非字符串的开头是"

0x"

"

0X"

或"

0"

trace(parseInt("

0x12"

));

//设定radix为16,输出:

18

017"

//设定radix为8,输出:

15

或者使用Number,uint和int对象的toString(radix)方法.

【使用Math.round()对一个数取整,四舍五入】

Math.round()

trace(Math.round(204.499));

//输出:

204

trace(Math.round(401.5));

402

【使用Math.floor()对一个数向下取整,就是只要整数部分而不理会小数分】

trace(Math.floor(204.99));

【使用Math.ceil()对一个数向上取整,只要小数部分不为零,整数部分就加1】

trace(Math.ceil(401.01));

【产生一个随机数】

使用Math.random()产生一个伪随机数n,其中0<

=n<

1

【把数字取至最近的小数点位,即指定精确度】

1.决定你要取的数字的小数点位数:

例如,如果你想把90.337取成90.34,就表示你要取到两位小数点位,也就是说你想取至最近的0.01;

2.让输入值除以步骤1所选的数字(此例为0.01);

3.使用Math.round()把步骤2所计得的值取成最近的整数;

4.把步骤3所得的结果乘以步骤2用于除法的那个值.

例如,要把90.337取成两个小数点位数,可以使用:

trace(Math.round(90.337/0.01)*0.01);

90.34

【把数字取成一个整数的最接近倍数值】

例1,这样会把92.5取成5的最近倍数值:

trace(Math.round(92.5/5)*5);

95

例2,这样会把92.5取成10的最近倍数值:

trace(Math.round(92.5/10)*10);

90

【在指定数值范围内获得随机数】

//可取范围:

[min,max]

privatefunctionrandRange(min:

Number,max:

Number):

Number{

varrandomNum:

Number=Math.floor(Math.random()*(max-min+1))+min;

returnrandomNum;

应用例子:

模拟投银币,即希望得到随机布尔值(true或false):

randRange(0,1);

模拟投骰子,即希望得到随机六个值:

randRange(1,6);

为避免被缓存而需要产生一个独一无二的数字追加在URL尾端,通常最佳方法是取得当前毫秒数.

【弧度(radian)与度数(degree)之间的转换】

从弧度转为度数:

degrees=radians*180/Math.PI

从度数转为弧度:

radians=degrees*Math.PI/180

【计算两点之间的距离】

勾股定理:

c2=a2+b2

假设有两个影片剪辑mc1和mc2,则它们两点间的距离c为:

varc:

Number=Math.sqrt(Math.pow(mc1.x-mc2.x,2)+Math.pow(mc1.y-mc2.y,2));

【模拟圆周运动】

已知圆心o(x0,y0),半径r和弧度angle,求圆上任意一点P(x,y)的坐标:

x=x0+(Math.cos(angle)*r);

y=y0+(Math.sin(angle)*r);

舞台的x轴正方向水平向右,y轴正方向垂直向下.

【模拟椭圆运动】

已知圆心o(x0,y0),长轴a,短轴b以及弧度angle,求圆上任意一点P(x,y)的坐标:

x=x0+(Math.cos(angle)*a);

y=y0+(Math.sin(angle)*b);

【华氏温度和摄氏温度之间的转换】

华氏温度=摄氏度数*9/5+32

摄氏温度=(华氏度数-32)*5/9

【公斤与磅之间的转换】

公斤=磅*2.2

磅=公斤/2.2

【向数组尾端添加元素】

vararray:

Array=newArray();

array.push("

//向数组尾端添加单一元素也可以这样:

array[array.length]="

c"

//如果以索引设定的元素不存在,数组本身会自动扩展以包含足够的元素数目.介于中间的元素会被设为undefined:

array[5]="

e"

trace(array[4]);

undefined

【向数组开端添加元素】

Array=["

];

array.unshift("

d"

trace(array);

c,d,a,b

【删除数组中第一个元素并返回该元素,使用shift()方法】

varletters:

varfirstLetter:

String=letters.shift();

trace(letters);

b,c

trace(firstLetter);

a

【删除数组中最后一个元素并返回该元素的值,使用pop()方法】

a,b,c

varletter:

String=letters.pop();

a,b

trace(letter);

c

【删除数组中的元素,给数组添加新元素并返回删除的元素,使用splice()方法】

splice(startIndex:

int,deleteCount:

uint,...values):

Array

startIndex:

一个整数,它指定数组中开始进行插入或删除的位置处的元素的索引;

deleteCount:

一个整数,它指定要删除的元素数量;

...values:

用逗号分隔的一个或多个值的可选列表或数组,此列表或数组将插入到此数组中由startIndex参数指定的位置.

【查找数组中第一个相匹配的元素】

varmatch:

for(vari:

int=0;

i<

array.length;

i++){

if(array[i]==match){

Elementwithindex"

+i+"

foundtomatch"

+match);

//输出:

Elementwithindex1foundtomatchb

break;

【查找数组中最后一个相匹配的元素】

int=array.length-1;

i>

=0;

i--){

Elementwithindex5foundtomatchb

【把字符串转成数组】

使用String.split()方法:

varlist:

IamYoungBoy."

varwords:

Array=list.split("

//以空格作为分隔符将字符串切割

trace(words);

I,am,YoungBoy.

【把数组转成字符串】

使用String.join()方法:

varmyArr:

one"

two"

three"

varmyStr:

String=myArr.join("

and"

trace(myArr);

one,two,three

trace(myStr);

oneandtwoandthree

【使用对象数组处理相关数据】

varcars:

cars.push({make:

Mike"

year:

1997,color:

blue"

});

Kelly"

1986,color:

red"

cars.length;

trace(cars[i].make+"

-"

+cars[i].year+"

+cars[i].color);

//Mike-1997-blue

//Kelly-1986-red

【在数组中获取最小或最大值】

varscores:

Array=[10,4,15,8];

scores.sort(Array.NUMERIC);

Minimum:

+scores[0]);

Maximum:

+scores[scores.length-1]);

【使用for...in语句读取关联数组元素】

varmyObject:

Object=newObject();

myObject.name="

YoungBoy"

myObject.age=20;

StringinmyObject){

trace(i+"

+myObject[i]);

name:

YoungBoy

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1