egret-docs-master/Conversion/fillingConfiguration/README.md

66 lines
2.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

本文讲述EgretConversion中遇到的API报错的处理方式。包括没有实现的Flash类没有实现的Flash属性、API接口等的手动补充方法。
在转换完项目后“API警告统计”页面会显示所有未能转换的Flash类或属性并在详情页定位到项目代码的位置。如果项目必须使用这些类或函数则必须补全这些API即在egret项目端有相应的flash api的映射。
手动补全过程如下:
### 1. 配置csv表
配置文件CSV表结构
| 类别 | 含义 |
|--|--|
| 类 | as3 中的类 全路径 |
| 继承类 | s3 中的父类 全路径 |
| 静态 | 静态1 非静态不填写 |
| 属性 | 对象的属性 |
| 属性get/set | 读1 只写2 读写不 填写|
| 函数 | 对象的方法 |
| 类型 | 类型、方法的返回值类型 |
| 转换类 | ts 中对应的类 |
| 是否需要删除前缀 | 静态属性、静态方法才写 |
| 转换属性| 属性对应不一致填写mouseEnable /uchEnabled |
| 转换属性格式 | 是1 给属性方法转成object[“xxx”]而不是object.xxx |
| 转换函数 | 应as3.sorton |
| 转换参数 | 意义不一样时 a.b() as3.sorton (a,b) 应填写b0 a1 |
| 是否转换实现 | 是1 否0 |
| 错误提示 | 可以备注错误信息 |
| 权重 | api出现频率 |
| 测试 | 是否测试过 |
填写完后放到项目文件夹的config目录下
![](56b1abfa0ce8e.png)
## 2. 增加映射的类文件或API
除了填写配置表还要补充相应的ts文件才能正确执行例如api目录下的配置表对应的文件大部分都在Egret引擎中也有少部分在扩展库as3中
![](56b1abfa302f6.png)
具体操作步骤:
**1. 当发现缺失的API需要补充时从附件“API模板”中找到API的文件。**
例如没找到InvokeEventReason类的STANDARD属性这是一个静态属性。在egret项目中没找到InvokeEventReason.ts这个类说明当前还没有实现这个API。
**2. 在egret项目目录相应目录下创建ts类。**
InvokeEventReason的flash包路径为flash.desktop.InvokeEventReason在目录C:\Users\chenpeng\Desktop\out\demo1\src\as3\flash\desktop下创建InvokeEventReason.ts文件。填充内容如下
```
module flash
{
export class InvokeEventReason
{
public static STANDARD:string = "standard";
public static NOTIFICATION:string = "notification";
public static OPEN_URL:string = "openUrl";
public static LOGIN:string = "login";
constructor(){
}
}
}
```
**3.InvokeEventReason.csv放到C:\Users\chenpeng\Desktop\out\config\api\flash\desktop下。**