浏览 1432 次
锁定老帖子 主题:LayaBox flash 转换项目心得
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2015-08-28
1、SimpleButton类不能动态修改各个状态的外观 2、ByteArray类,不能使用[]语法获取和设置指定位上的数据,需要改用 byteAt和byteSet取代对应的获取和设置方式 3、Dictionary类,在使用[]语法获取和设置时,如果key值的类型为对象或复杂类型,都需要使用DIC和DICKEY取代原有的设置和和获取方式,hasOwnProperty()方法替换为if判断方式 4、XML类,在使用lenght()方法获取子节点长度的时候,需要替换成xmlLength()方法。如果用到连续获取下级子节点的情况,需要判断上层节点是否为null。子节点的节点名不能使用layaBox的限定字。属性值为数字的时候,使用时需要强制转换。 5、使用非本类的对象的方法引用作为参数时,需要使用bind()方法绑定作用域 6、项目入口添加 IFlash.setSize(),设置项目宽高 IFlash.regBeforeInit(),转换项目初始化前需要的操作,可以处理一些用到表达式赋值的静态属性的首次调用 IFlash. setOrientationEx(),设置项目是横屏还是竖屏 7、用到表达式赋值的静态属性需要调用一次后才能正常得到值 8、使用Loader类的loadBytes方法加载图片二进制数据的地方需要改成URLLoader加载 9、导入其他js库文件的方式,importJS("xx.js", null) 二、转换的大致步骤 1、没有错误或者警告,运行flash版本 2、整体修改一遍字典相关的代码,全文搜索:Dictionary,然后使用flashBuilder的调用堆栈逐个检查 3、如有时间,统一修改一遍函数作用于绑定相关的代码,全文搜索function(,然后使用flashBuilder的调用堆栈逐个检查 4、转换成js,在浏览器中运行,开始js调试 5、在as3中调试,对比js的代码的问题做出修改 6、重复步骤4 三、转换时使用的宏编译 1、只在as3中运行的代码行,/*[IF-FLASH]*/ 2、只在js中运行的代码行,//[IF-JS]或者//[IF-SCRIPT] 3、只在as3中运行的代码块,/*[IF-FLASH-BEGIN]*/.../*[IF-FLASH-END]*/ 4、只在js中运行的代码块,/*[IF-SCRIPT-BEGIN]...[IF-SCRIPT-END]*/ 四、转换经验(其余还在总结中) 1、swtich...case的条件如果用到整数,一般需要强制转换一下 2、使用__JS__(...)的时候,里面如果是引用文件,记得加包路径,不然遇到有两个相同类名的时候就跪了(张聪聪增补) 3、遇到as类型检查时,需要看是否为连续使用,例如:(a as B).c,这种情况需要拆开写 4、修改过的地方加上一定规律的注释作为标记,方便查找增补、修改的内容及后续跟进 5、在使用LoaderInfo对象作为字典key时会出现取不出值的问题,需改用LoaderInfo对象对应的Loader对象作为key,可以解决这个问题 6、使用in语法判断字典中是否存在某个属性的时候(xx in a)需要改用普通的判断条件 a[DICKEY(xx)] != null 7、查找字典语法的改写阶段,遇到不明类型的情况,可以写一个判断,如果对象是Object,输出一个信息,提示这里需要使用DIC/DICKEY改写,在后期随见随改 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |