flash中AS的使用技巧汇总

  • 来源: 2345软件大全   2016-05-06/16:46
  • 核心提示:flash中AS使用经验总结。

    都是在项目中总结的,经过实践的,在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


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多