转自别人的,这里没有URL地址,因为是一份资料
【改变输出
swf
的尺度,背景颜色或帧频】
在"Navigator"窗框里右键你的项目 >选中 "Properties">选中 "ActionScript Compiler">在"Additional compiler arguments"里输入你所需要的命令
如想改变背景颜色,请输入:
-default-background-color 0xffffff
【鼠标坐标】
mouseX mouseY
【检查变量类型并返回布尔值】
is
【检查变量类型并返回类型】
typeof
【检查对象类型并返回该对象】
as
【是数字但不是有效数字问题】
var quantity:Number = 15 - "rabbits";
trace(typeof quantity); //显示: "number" , 但它是
NaN (not a number)trace(quantity is Number); //true
trace(quantity != NaN); //false
//使用 isNaN()函数检测:
isNaN(quantity); //true
//检测变量是否内含有效数字:
!isNaN(quantity); //false
【取消默认的严格编译模式】
在 "Navigator"窗框里右键你的项目"Enabel compile-time type checking"选项
【基元数据类型和复杂数据类型好比"值类型"和"引用类型"】基元数据类型类似按值传递:
var intOne:int = 1;
var intTwo:int= 1;
trace(intOne == intTwo);//true
【复杂数据类型类似按引用传递】
var arrayOne:Array = new Array("a","b");var arrayTwo:Array = arrayOne;trace(arrayOne == arrayTwo);//true//-----------------------------------
var arrayOne:Array = new Array("a","b");var arrayTwo:Array = new Array("a", "b");
> 选中 "Properties">选中 "ActionScript Compiler">取消
trace(arrayOne == arrayTwo);//false
【优化逻辑 AND(&&)和 OR(||)的小知识】对于逻辑 And(&&):
除非条件表达式的前半部分为真 ,否则,ActionScript 不会再去求算逻辑 AND 运算符的后半部.如果前半部为假,整个条件表达式一定为假,所以再去求算后半部就没效率了.对于逻辑 OR(||):
除非条件表达式前半部为假,否则,ActionScript 不会再去求算逻辑
OR
运算符的后半部,如果前半部为真,整个条件表达式一定为真.
总结:使用逻辑 AND(&&)时,把结果最可能为 false
的表达式放到前面;使用逻辑
OR(||)时,把结果最可能为
true
的表达式放到前面.
【Timer 类注意事项】
不要认为 Timer
可以极其准确;使用
Timer
时间间隔不要低于10毫秒.
【private,protected,internal,public 访问权限】
pri vate:只能在类本身内部访问,按惯例,
命名私有成员时以下划线"
_"开头;protected:可以由类本身或任何子类访问 .但这是以实例为基础的 .换言之,类实例可以访问自己的保护成员或者父类的保护成员
,但不能访问相同类的其它实例的保护成员 ,按惯例,命名保护成员时以下划线"_"开头;
internal:可以由类本身或者相同包内的任何类访问;public:可以在类内部访问,也可以由类实例访问,或者声明为 static
时,可以直接从类访问.
【一个函数具有未知个数的参数,用
arguments
对象或"...(rest)"符号访问它的参数】注意:使用"...(rest)"参数会使
arguments
对象不可用;
private funciton average():void{
trace(arguments.length); //输出参数的个数
// arguments 的类型是:object,但可以像访问数组一样去访问它trace(arguments[1]); //输出第二个参数
}
private function average(...argu):void{
trace(argu[1]); //输出第二个参数,argu 参数名是自定义的.}
【错误处理 try,catch,finally】private function tryError():void{
try {trace("测试开始-try");throwE rro r( );
}catch(errObject:Error) {
trace("错误信息:" + errObject.message);trace("测试结束-catch");
return;
}finally{
trace("虽然 catch 里已经有
return
方法,但位于
return
方法后面的
finally
里的代码依
然会被执行.其实无论 return 方法是在 try 里,还是 catch 里,finally 里的代码始终会被执行");}
trace("前面已经有 return 了,此处是不会再执行的.除非没有抛出错误,以使 catch 里的代码没有被执行");
}
private function throwError():void{
throw new Error("抛出错误");}
【for...in与
for each...in
的区别】
与 for...in循环不同的是,for each...in
循环中的迭代变量包含属性所保存的值,而不包含属性的名称(或主键,索引).
【命名包路径的小技巧】
使用相应于拥有者和相关项目的包名称会比较好 .按惯例来讲,包名称的开头应该是逆
向的网址名称.例如,如果 ExampleCorp(examplecorp.com)写了一些 ActionScript3.0类,就会把所有类放在com.examplecorp包内(或者 com.examplecorp的子包内).如此一来,如果英国有另一家 Example Corp(examplecorp.co.uk) 也写了一些 ActionScript3.0 类 , 只要使用包uk.co.examplecorp,就可确保 唯一性.
当类属于特定应用程序的一部分时 , 就应该放在该应用程序特定的子包内 . 例如,Example Corp 可能有个应用程序名叫 WidgetStore.如果 WidgetStore 应用程序使用一个名为 ApplicationManager 的类,则此 类就应该放在 com.examplecorp.widgetstore 包内,或者位于该包的子包内.
按惯例来说,包名称的开头是小写字母.
【隐式的取出方法(getter)和设定方法(setter)】public function get count():uint {
return _count;}
publicfunction set count(value:uint):uint{if(value<100){
_count = value;}else{
throw Error();}
}
【确保类是绝不会有子类,使用 final】final public class Example{}
【super 关键字的使用】
super(); //父类的构造函数,只能在类实例构造函数内部使用super.propertyName; //调用父类的属性,属性需要声明为 public
或
protectedsuper.methodName(); //调用父类的方法,方法需要声明为 public
或
protected
【建立常数,使用关键字 const 而不是 var】staticpublic const EXAMPLE:String= "example";
【检测播放器版本】
flash.system.Capabilities.version
对于8.5版以前的任何
Flash Player
版本,这种方法都不适用.
【判断客户端系统】
flash.system.Capabilities.os
【检测播放器类型】
flash.system.Capabilities.playerType
可能的值有:
"StandAlone",用于独立的 FlashPlayer
"External",用于外部的 Flash Player 或处于测试模式下
"PlugIn",用于 Flash Player
浏览器插件
"ActiveX",用于 Microsoft Internet Explorer
使用的
Flash PlayerActiveX
控件
【检测系统语言】
flash.system.Capabilities.language
【判断用户是否启用了 IME(输入法编辑器)】flash.system.IME.enabled
【检测屏幕的分辨率】
flash.system.Capabilities.screenResolutionXfl ash.system.Capabili ti es.screenResol uti onY
【把弹出窗口居中的算法】X = (舞台宽/2)-(窗口宽/2)
Y = (舞台高/2)-(窗口高/2)
【控制影片配合 Player 的方式,包括缩放问题】stage.scaleMode可供选择值:flash.display.StageScaleMode
【舞台的对齐方式】
stage.align可供选择值:flash.display.StageAlign
【隐藏 Flash Player 的右键菜单】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
【显示 Flash Player 中的"安全设置"面板】flash.system.Security.showSettings();可供选择项: fl ash.system.Securi tyPanel
【让其它域的.swf 访问本域的.swf】
在本域的.swf 文件里加上:flash.system.Security.allowDomain()
或 者使用安全策略文件"crossdomain.xml".在Flash8以前,这个文件必须放在.swf所在域的根目录,现在,你可以使用 flash.system.Security.loadPolicyFile(),指
定安全策略文件所在的位置
.拒绝任何域的做法是在
<cross-domain-policy>标签内什么也不填 ,安全策略文件也支持通用字符
"*":
<?xml version="1.0"?>
<!-- http://www.mydomain.com/crossdomain.xml
-->
<cros s- domai n-poli cy>
<allow-access-from domain="www.riahome.cn" /><allow-access-from domain="*.Y-boy.cn"/><allow-access-from domain="210.38.196.48" /><allow-access-from domain="*" />
</cros s- domai n-poli cy>
【数字的不同进制之间的转换】
parseInt(str:String, radix:uint = 0):Number
返回十进制的数,参数
radix
表示要分析的数字的基数.如果省略
radix,就默认为10,除非字符串的开头是"0x","0X"或"0":
trace(parseInt("0x12")); //设定 radix 为16,输出:18
trace(parseInt("017")); //设定 radix
为8,输出:15
或者使用 Number,uint
和
int
对象的
toString(radix)方法.
【使用
Math.round()对一个数取整,四舍五入】Math.round()
trace(Math.round(204.499)); //输出:204trace(Math.round(401.5)); //输出:402
【使用 Math.floor()对一个数向下取整,就是只要整数部分而不理会小数分】trace(Math.floor(204.99)); //输出:204
【使用 Math.ceil()对一个数向上取整,只要小数部分不为零,整数部分就加1】trace(Math.ceil(401.01)); //输出:402
【产生一个随机数】
使用 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]
private function randRange(min:Number,max:Number):Number {
var randomNum:Number= Math.floor(Math.random() * (max - min + 1)) + min;
return randomNum;}
应用例子:
模拟投银币,即希望得到随机布尔值(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
为:
var c: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