当前位置: 首页 > 图文教程 > Flash动画 > Flash动画制作 > AS使用经验总结:AS的使用技巧汇总

Flash动画制作
赤手空拳下载Flash
创建一个Flash站点的十大技巧
用Flash制作Google搜索程序
枫桥夜泊下 遮罩效果的动态文本
Flash MX 2004 ActionScript图文教程(十二)
Flash实例教程 扫描文字效果
Flash MX 2004 ActionScript图文教程(十三)
快速制作您的flash图表
Flash MX 2004 ActionScript图文教程(十四)
Flash实例教程 变幻的字母
Flash MX 2004 ActionScript图文教程(十五)
Flash实例教程 相约北京 扬帆青岛
Flash教程实例 光线特效文字
Flash课件实例 画正多边形
Flash课件实例 平行四边形法则
Flash实例教程 小孔成像课件
精简Flash文件体积七法
Flash教程实例:水中浮动的文字
金鸡贺岁!Flash制作鸡年新春动画贺卡
Flash MX 2004新特性实例学习一

Flash动画制作 中的 AS使用经验总结:AS的使用技巧汇总


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-04   浏览: 67 ::
收藏到网摘: n/a

都是在项目中总结的,经过实践的,在flex2 as3下使用的。

as调js
ExternalInterface.call("js函数名",参数:数组);(可以接收返回值)

js调as
as:ExternalInterface.addCallback("js中使用的函数名(字符串)", as中的函数(函数类型));
js:SWF名.js中使用的函数名(参数);

对象清理:
as中如果某个对象不被使用,且没有任何对象引用它,则此对象会被回收器回收(不一定什么时候),所以用完的对象一定要处理(比如加的监听要删除等等),否则会长占内存。

重绘:
flash中被挡住的对象也会被重绘,比如在一个位置不停的画圆,画到几百或几千层,当鼠标经过这块的时候会感觉到速度变慢,查看cpu状态会看到cpu被占满,但不会占内存。

判断对象类型:
if(a is 类型){}

获得对象类型:
trace(typeof 对象)输出对象类型

类型转化:
var a:类型 = b as 类型;

强转:
var a:类型 = 类型(b);

判断数字:
isNaN(表达式),注意是数字时返回false

Timer
不要认为Timer可以极其准确;使用Timer时间间隔不要低于10毫秒.

private,protected,internal,public访问权限
private:只能在类本身内部访问
protected:可以由类本身或任何子类访问.
internal:可以由类本身或者相同包内的任何类访问;
public:可以在类内部访问,也可以由类实例访问

for...in与for each...in的区别
与for...in循环不同的是,for each...in循环中的迭代变量包含属性所保存的值,而不包含属性的名称(或主键,索引).
例如:var obj:Object={name1:value1,name2:value2};
for...in取出的是name,for each...in取出的是value

对象
AS中所有对象可默认互相转换,如数组可以当作Map来用。
但是作为数组来用时,就不能保证顺序了。
比如:
var array:Array = new Array();
array["a"] = new Object();

ToolTip
如果禁止ToolTip显示,
1.this.truncateToFit = false;(不会出现...)
2.重写updateDisplayList,并最后super.toolTip = null;(会出现...)

反射
classType = flash.utils.getDefinitionByName(className) as Class;
new classType();

格林尼治时间 格式化时出错。(如中国 时区,1970/01/01 08:00时出错,已经确认是flex的bug

replace所有
AS中没有replaceAll 函数,要实现这个函数可以用正则表达式
如: 将 00:00:00 中的 ’:‘替换成  ‘ ‘ 可如下实现
var testStr : String = "00:00:00";
var repedStr : String = testStr.replace(/:/g, " ");
/:/g 后面的g不能少, g 表示全局

AS对象深Clone方法:
        private function clone(_source:Object):* {
            var copier:ByteArray = new ByteArray();
            copier.writeObject(_source);
            copier.position = 0;
            return(copier.readObject());
        }
mx_internal类型的方法也可以重载:(不推荐)
需要在import的最下面进行如下声明-
use namespace mx_internal;