12321官方游戏论坛

 找回密码
 立即注册
查看: 2522|回复: 2

LayaBox flash 转换项目心得

[复制链接]

76

主题

131

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
17958
发表于 2018-1-12 10:22:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
一、熟悉从as3项目转到js的API和特性差异
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、整体修改一遍字典相关的代码,全文搜索ictionary,然后使用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改写,在后期随见随改
回复

使用道具 举报

61

主题

2万

帖子

3万

积分

管理员

野心家

Rank: 9Rank: 9Rank: 9

积分
38159
QQ
发表于 2018-1-12 18:12:43 | 显示全部楼层
厉害!支持!!
既然无法一起出生,  那就一起祸害苍生。
回复

使用道具 举报

55

主题

714

帖子

6327

积分

管理员

愿5DPLAY再次翱翔

Rank: 9Rank: 9Rank: 9

积分
6327
发表于 2018-1-12 23:30:45 | 显示全部楼层
老大这都开始html5了,我还在这里摸AS3,差距啊差距
きんいろモザイク
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|12321官方游戏论坛  

GMT+8, 2024-4-23 23:24 , Processed in 0.045684 second(s), 27 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表