有关Flash中与Java调用时候注意的一些事项

时间:2023-03-08 22:52:22
有关Flash中与Java调用时候注意的一些事项

1.构建本地拓展的ActionScript库时候要注意SWF文件的版本兼容性:

有关Flash中与Java调用时候注意的一些事项

参考:http://help.adobe.com/zh_CN/air/extensions/WS99209310cacd98cc2d13931c1300f2c84c7-8000.html

2.使用Flash Builder导出用于发行的APk包:

有关Flash中与Java调用时候注意的一些事项

参考:http://help.adobe.com/zh_CN/flashbuilder/using/WSe4e4b720da9dedb5-6caff02f136a645e895-7ffd.html

3.关于如何将自己Java接口生成的jar包和自己调用的三方Jar包合并:

其实自己一般用两种方式,第一种是使用fatjar的插件,还是很好用的;第二种是使用Ant命令,自己写build.xml

今天无意间可以看到写bat脚本,使用Jar本身的命令,但是没有尝试,记录一下:

用jar -xf命令解压三方jar包

用jar -uf命令合并三方jar包

参考:http://bbs.9ria.com/thread-160445-1-1.html

4.至于Android端一些资源的处理:

Android端的资源都可以拷贝到Android-ARM目录下面,并在调用界面之前调用如下代码:

 public static void setResourctID(String rName,FREContext context) throws Exception{  
    Class<?> R = Class.forName(rName);  
    Class<?>[] clss = R.getDeclaredClasses();  
    for (int i = 0; i < clss.length; i++) {  
        Class<?> cls = clss[i];  
        Field[] flds = cls.getDeclaredFields();  
        for (int j = 0; j < flds.length; j++) {  
            Field fld = flds[j];  
            fld.setAccessible(true);  
            Object obj = cls.newInstance();  
            String name = cls.getSimpleName()+"."+fld.getName();  
            int id = context.getResourceId(name);  
            fld.set(obj, id);  
        }  
    }  
}  

其中rName为Android生成R文件的全类名,例如:com.wenver.flashair.icon

至于那些assets文件以及so文件,可以先生成一次apk包,然后解压,将其放到对应目录下面,在进行二次打包。

5.在构建ANE文件,并导入Flex项目之后,出现一个问题:

有关Flash中与Java调用时候注意的一些事项

折腾了整整一天,真的是各种心醉,原以为是自己打包ANE文件有问题,后来无意间看到一个Adobe的论坛上面一个帖子:

https://forums.adobe.com/thread/1587306?start=0&tstart=0

有关Flash中与Java调用时候注意的一些事项

什么?以为ANE可以在模拟器上面run,我就是在直接在Air的模拟器上run的啊!

赶紧换真机..........

世界都清净了!