我一直在开发一个移动应用程序.它可以在iOS和Android上运行,也可以作为AIR应用在桌面上运行.这太棒了,我对此感到非常兴奋.但是,上周我被问到为什么我无法导出在Web浏览器中运行的应用程序版本.我说我认为我可以,我会调查它.
但为什么要在桌面上运行移动代码?
有几个原因:
那么我发现了什么?好吧,从我迄今为止尝试过的...它...不起作用.或者说我无法使其发挥作用.
我首先为所有共享代码创建了一个Flex库项目.然后我创建了两个引用它的应用程序项目 - 一个用于移动,一个用于Web.移动项目工作正常,但Web项目没有.以下是我迄今为止尝试过的方法:
VerifyError: Error #1014: Class flash.text::StageText could not be found
.我发现这个错误很少,我找到的一个提示(添加--swf-version=13
编译器选项)不起作用.所以到目前为止,这些方法都没有对我有用......但你呢?你遇到过这个问题吗?你是否能够使它发挥作用,或者你能否发现我在上面提到的方法中所做的任何明显的疏忽?如果可以,请提前致谢.
我已经能够在上面提到的第一条路线上取得进展:将mobilecomponents.swc和mobile.swc主题添加到我的web项目中
事实证明,Flash Builder在这方面让我错了.使用"合并到代码"设置将移动SWC添加到库项目会导致编译器警告:swc'/ Applications/Adobe Flash Builder
4.6/sdks/4.6.0/frameworks/themes/Mobile/mobile.swc'具有样式默认值并位于库路径中,这意味着依赖关系将在没有样式的情况下链接.这可能导致使用输出swc的应用程序丢失皮肤.swc应该放在外部库路径中.
第一次看到这个,我将链接类型更改为"外部",警告消失了.然后在我的web项目中,我还添加了移动SWC并将链接类型设置为"合并到代码".Flash Builder似乎对这种方法很满意,但在运行我的应用程序时,我遇到了奇怪的运行时错误(如上所述).
原来我的第一次尝试是正确的方法.将库项目上的链接类型设置为"合并到代码",然后不要从Web项目重新链接.Flash Builder会警告您,但忽略警告.事情似乎在大多数情况下都很好用!我有一两个要研究的问题(例如,列表组件不会滚动)但事情总体上看起来很有前途!
有哪些选项可用于使用Adobe AIR处理Android上的文本输入?每个选项有哪些优点和缺点?