我有一个Flash CC / AS3文档,我打算在iOS和Android平台上部署。
接下来我需要做的是将应用程序与Facebook集成。我认为最合乎逻辑的方法是拥有一个处理所有Facebook交互内容的类,并调用适当的方法,无论我们是为Air for Android还是Air for iOS编译的。我不认为这样做太难了。
当我开始玩Persistant Login时出现了问题。要在iOS上完成此操作,我需要将.ane文件包含到我的.fla中。很好,所以在这一点上我复制了.fla并且有1个用于Android,1个用于iOS(这是一直以来的计划)。
所以在iOS应用程序中我接下来必须import com.sbhave.openUrl.*;
引用.ane文件。我希望我能做一些像
try{
import com.sbhave.openUrl.*;
}
catch(e){
//Set some constant to let us know that we are on android
}
替代方案(我认为)将是对iOS进行所有更改,做一个差异并创建一个补丁,以便在构建时快速交换进出iOS原生扩展。是否有任何人建议如何捕获失败的导入,或根据.ane文件是否存在而有条件地导入。
由于
PS ..
哦,是的,我忘了提到这个如此重要的原因是因为iOS的Air无法在包含扩展功能的PC上运行,而且每次需要时都需要编译和安装很多工作测试
PPS ..
此问题并非特定于Facebook持久登录,因为其他本地扩展将需要各种位。问题的焦点是AS3代码是否可以有条件地包含头文件或进程不同包含基于.FLA中设置的参数
答案 0 :(得分:0)
对于其他遇到类似问题的人,我通过以下方式解决了这个问题: 我创建了一个编译时常量CONFIG :: iOS,我在iOS应用程序中设置为true,在Android中设置为False。
任何依赖于包含3rdparty .ane或.swc文件的代码都包含在像
这样的块中CONFIG::iOS
{
//iOS Specific
}
感谢http://divillysausages.com/blog/as3_conditional_compilation