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

66 lines
2.6 KiB
Markdown
Raw Normal View History

2024-06-19 13:32:32 +08:00
本文讲述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下。**