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 |