在制作iphone应用程序时是否可以嵌入或加载主权财富基金(苹果是否允许)
在为iphone制作应用程序时,我对是否嵌入主权财富基金或加载主权财富基金有点困惑。有人知道每种方法的优点是什么(哪种方法更可取)?我知道嵌入主权财富基金应该比加载它们快一点,但就这些吗 而且这也很重要,我读到苹果会拒绝任何带有外部主权财富基金的应用??这是真的吗?如果是这样,嵌入或加载上述主权财富基金会解决这个问题吗 提前谢谢 编辑:经过一番搜索,发现苹果确实在加载外部软件方面存在问题,你仍然可以这样做,但你的软件不需要附加任何动作脚本,这里有一个链接,它没有说明任何嵌入软件的事,所以我的问题是:在iphone上编写应用程序时,你能嵌入软件吗 当我说外部主权财富基金时,请编辑以澄清。我指的是在本地系统中找到的SWF,但您需要将它们添加到您的程序中,因为它们包含MovieClips或sprite等。。。你需要的。我不是说你需要从网站或在线资源下载主权财富基金。(希望澄清问题)在制作iphone应用程序时是否可以嵌入或加载主权财富基金(苹果是否允许),iphone,flash,actionscript-3,actionscript,air,Iphone,Flash,Actionscript 3,Actionscript,Air,在为iphone制作应用程序时,我对是否嵌入主权财富基金或加载主权财富基金有点困惑。有人知道每种方法的优点是什么(哪种方法更可取)?我知道嵌入主权财富基金应该比加载它们快一点,但就这些吗 而且这也很重要,我读到苹果会拒绝任何带有外部主权财富基金的应用??这是真的吗?如果是这样,嵌入或加载上述主权财富基金会解决这个问题吗 提前谢谢 编辑:经过一番搜索,发现苹果确实在加载外部软件方面存在问题,你仍然可以这样做,但你的软件不需要附加任何动作脚本,这里有一个链接,它没有说明任何嵌入软件的事,所以我的问题
编辑更改了问题的标题…问题解决了,感谢所有的帮助,新年快乐=D我不熟悉苹果和iPhone应用程序的规则,但一般来说,当我制作应用程序/游戏时,我会嵌入所有内容。优点:
- 您的游戏/应用程序位于一个swf中,便于共享
- 您的游戏/应用加载速度更快,因为加载时所有资产都在那里
- 你不需要依赖互联网访问来获取你的资产(如果你是从网站加载的话)——这对应用程序来说是很好的
- 您的游戏/应用程序将“正常工作”-没有安全问题,URL更改/资产站点关闭时没有问题(如果它们是外部的)
- 如果您使用swc而不是swf(顺便说一句,swc也可以加载),那么您也可以从严格的键入中获益
- 如果你需要更新你的一项资产,你需要重新发布游戏/应用程序
答案是肯定的,你可以嵌入主权财富基金,但这不是唯一的方法。您还可以使用普通加载程序方法,处理与主SWF相关的所有内容:
var myLoader:Loader = new Loader();
// iOS apps act as if the main SWF is in a folder
// and the other SWFs are in the same (or sub) folders.
var url:URLRequest = new URLRequest("loadedSWF.swf");
myLoader.load(url);
addChild(myLoader);
myLoader.x = 50;
myLoader.y = 30;
有一个警告:在编译期间(在“Air for iOS设置”的“包含文件”列表中),您必须列出要加载的主权财富基金,它们将被编译到IPA中
因此,不,您不能调用外部SWF,但您当然可以使用embed
标记或使用(可能称为)IPA嵌入来访问其他SWF
编辑:
自从我第一次回答这个问题以来,问题和标题有了一些变化,这里有一个更一般的总结。如果在网站上使用Flash Player,苹果不允许以同样的方式加载本地主权财富基金。在i-device中使用“相对”或“本地”引用无法加载SWF(或任何其他内容),除非该内容被编译到应用程序中。这不适用于某些类型的“远程”SWF加载,也不适用于Actionscript“本机”编码,但这不是(原始)问题所在。更新,2012年10月: 在AdobeAIR 3.5中,adl引入了一个名为“多SWF支持”的功能,该功能允许使用加载程序加载.ipa(本地文件,而不是服务器)中交付的SWF,以便在其中包含代码。adl编译器AOT编译.ipa中包含的SWF,允许它们在iOS下加载和工作 在撰写本文时,AIR 3.5目前处于测试阶段,可在adobe实验室网站上获得:
- 请注意,可以为其矢量图形内容加载SWF。将显示图形,但不会执行代码
[Embed(source="GameLevel.swf")]
private var GameLevel:Class;
public function main():void
{
var my_level:* = new GameLevel();
addChild(my_level);
}
在这种情况下,如果gameLevel.swf中包含代码,它通常不会在iOS中工作,因为新的gameLevel()将创建加载程序并解释swf字节码。但是,如果您首先通过我的名为SWFMerge的工具运行上述SWF,它将获取嵌入的SWF并将其合并到根SWF中。然后ADT将把您的主swf(包括嵌入式代码)编译成objective-C,它将在iOS上运行,注意:new gameLevel()现在直接生成您的资产实例,而不是加载程序
SWFMerge工具位于此处:
请在评论中告诉我此解决方案是否适用于您,或者您是否有问题
使用Lo