制作 iPhone 应用程序时是否可以嵌入或加载 SWF(Apple 是否允许)

2023-12-01

我对在为 iphone 制作应用程序时是嵌入 swf 还是加载它们有点困惑。有谁知道每个的优点是什么(最好使用哪个)?我知道嵌入 swf 应该比加载它们快一点,但这就是全部吗?

另外,这一点很重要,我读到苹果将拒绝任何带有外部 swf 的应用程序?这确实是正确的吗?如果是这样,嵌入或加载所述 swf 是否可以解决此问题?

提前致谢

EDIT:经过一番搜索后,发现苹果确实在加载外部 swf 时遇到问题,你仍然可以这样做,但你的 swf 不需要附加任何动作脚本,这里有一个链接http://whizzkid74.blogspot.com/2010/12/air-for-iphone-loading-external-swf.html但是它没有提到任何关于嵌入 swf 的内容,所以我的问题是:在 iPhone 上编写应用程序时可以嵌入 swf 吗?

EDIT澄清一下,当我说外部 SWF 时。我的意思是在您的系统本地找到的 SWF,但您需要将它们添加到您的程序中,因为它们包含您需要的 MovieClips 或 Sprites 等。我并不是指需要从网站或在线资源下载的 SWF。 (希望能澄清事情)

EDIT更改了问题的标题...问题解决了,感谢所有帮助人员,新年快乐=D


2012 年 10 月更新:

在 Adob​​e AIR 3.5 中,adl 引入了一项名为“多 SWF 支持”的功能,该功能允许使用 Loaders 加载 .ipa(本地文件,而不是来自服务器)中提供的 SWF,以便在其中包含代码。 adl 编译器 AOT 编译 .ipa 中包含的 SWF,允许它们在 iOS 下加载和工作。

在撰写本文时,AIR 3.5 目前处于测试阶段,可在 adobe 实验室网站上获取:

  • Adobe 实验室网站上的 AIR 3.5
  • AIR 3.5 发行说明

请注意,此功能需要根 SWF(不一定是正在加载的资源)的 -swf-version=18 或更高版本以及应用程序 xml 文件中以 3.5 结尾的 AIR 命名空间。

较旧的答案:

我想更新这个答案,因为自从我第一次研究这个问题以来,我已经学到了很多关于这个问题的知识。

问题的根源在于,当使用 AIR 制作 iOS 应用程序时,Apple TOS 不允许运行时解释代码 - 这包括 SWF 字节码。因此,加载带有代码的 SWF(即使是简单的动画命令,如 stop()、gotoAndPlay() 等)是不允许的,并且不起作用通过装载机(AIR 3.5 之前的版本)。

  • 请注意,加载 SWF 的矢量图形内容是完全可以的。图形将显示,但代码将不会执行。

不过,有一些解决方法。这两种解决方法都通过将包含代码的资源编译到主 SWF 中来避免使用 Loader,因为一旦它们成为主 SWF 的一部分,AIR 编译器 (adt) 就会将代码交叉编译到 Objective-C 中,一切都会正常工作在 iOS 设备上。

使用 SWC 库

这是iOS开发的最佳选择。如果您将图形资源(.fla 文件)编译为 SWC(或从库中的符号导出 SWC),然后针对这些 SWC 编译主 swf,这将通过编译器,并且 ActionScript 代码将在 iOS 设备上执行。

使用 SWFMerge 进行[嵌入]ed SWF

将资源嵌入到 SWF 中非常简单,如下所示:

[Embed(source="GameLevel.swf")]
  private var GameLevel:Class;

public function main():void
{
  var my_level:* = new GameLevel();
  addChild(my_level);
}

在这种情况下,如果 gameLevel.swf 中有代码,它通常在 iOS 中不起作用,因为 new gameLevel() 将创建一个 Loader 并解释 SWF 字节码。但是,如果您首先通过我的名为 SWFMerge 的工具运行上述 SWF,它将获取您的嵌入式 SWF 并将其合并到您的根 SWF 中。然后 ADT 会将您的主 swf(包括嵌入代码)编译为 Objective-C,它将在 iOS 上运行,并注意:new gameLevel() 现在直接生成您的资产实例 - 而不是加载器。

SWFMerge 工具在这里:

http://www.onetacoshort.com/temp/SWFMerge_alpha.swf

如果此解决方法适合您或者您遇到问题,请在评论中告诉我。

使用装载机

在 AIR 3.5 之前,如果您使用 Loader 加载 SWF 文件(无论该 swf 包含在您的 IPA 中还是从 Web 服务器提供),目标 SWF 图形都可以正常加载,但 SWF 内的任何代码都不会执行因为 Apple 的 TOS 不允许这样做。

从 AIR 3.5 开始,将 .ipa 中的 SWF 文件打包为资产,即使它们包含代码,使用 Loader 也可以正常工作,因为该代码现在由 adt 进行 AOT 编译。这需要根 SWF(不一定是资源)的 -swf-version=18 或更高版本以及应用程序 xml 文件中以 3.5 结尾的 AIR 命名空间。

然而,从技术上讲,解释 SWF 字节码是可行的,这只是 App Store 的法律限制。如果您只想在 iOS 设备上进行测试并且不想通过 App Store 分发您的应用程序,则可以使用 adt 编译您的 SWF-target ipa-test-interpreter选项,并且加载包含代码的 SWF 将起作用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

制作 iPhone 应用程序时是否可以嵌入或加载 SWF(Apple 是否允许) 的相关文章

  • 如何从标签栏控制器上方显示 UIActionSheet 视图?

    我需要在选项卡栏控制器上方显示操作表 我的意思是 即使操作表视图处于可见模式 我也能够看到选项卡栏控制器 因此 请建议如何从选项卡栏控制器上方查看 是否可以 其次 如何更改操作表的背景颜色和取消按钮背景颜色 请帮我 谢谢你 马丹 莫汉 要从
  • 为什么 iPhone 应用程序的 main() 函数没有机会完成?

    考虑以下main 大多数 iPhone 应用程序都采用以下方法 int main int argc char argv NSAutoreleasePool pool NSAutoreleasePool alloc init int retV
  • 从设备获取联系人列表时出现问题

    这段代码有什么问题 NSMutableArray contactArray NSMutableArray alloc init ABAddressBookRef addressBook ABAddressBookCreate CFArray
  • 为什么 Apple 建议以编程方式创建模态导航控制器?

    以模态方式呈现导航控制器时 以编程方式创建和配置导航控制器对象通常更简单 虽然您也可以使用 Interface Builder 来执行此操作 但通常不建议这样做 事实上 因为我的导航控制器很简单 我宁愿在IB中自定义视图 虽然我不知道确切的
  • SDK 和 iOS 部署目标。

    我使用最新的 SDK 4 1 构建项目并设置 iOS 部署目标 3 0 如果我使用4 0 sdk的某些方法 我可以在真正的iPhone 3 0上运行我的项目吗 您只能在 OS 3 设备上运行您的项目 如果有条件地编码围绕您想要使用的 OS
  • 如何将nsmutable数组添加到sqlite数据库表中

    如何将nsmutablearray添加到sqlite数据库表中 有人可以帮我编码吗 您可以使用 for int i 0 i lt mutArray count i NSString string mutArray objectAtIndex
  • 使用ios sdk在youtube上上传视频的方法[重复]

    这个问题在这里已经有答案了 可能的重复 如何从 iOS 应用程序中将视频上传到 YouTube https stackoverflow com questions 3528568 how do i upload a video to you
  • 移动物体而不实际接触物体

    我是 iPhone 开发的初学者 我一直在寻找这个问题的答案 但还没有找到任何东西 我想做的是允许用户移动对象而无需实际触摸该对象 他们可以触摸屏幕上的任何位置 并且当他们移动时 对象将从原来的位置向用户的方向移动移动但不会跳到他们的触摸位
  • 如何安全地重命名 iOS 分发配置文件?

    我几个小时前刚刚提交了我的第一个应用程序 现在处于 等待审核 状态 但我犯了一个错误 我已经命名了我的分配配置文件My Company Distribution Profile 我应该做的事情被命名为我的发行版配置文件My GAME Dis
  • 禁用选择单个 UITableViewCell

    如何禁止在 UITableView 中仅选择单个单元格 我有几个 我只想禁用最后一个 要停止仅选择某些单元格 请使用 cell userInteractionEnabled NO 除了阻止选择之外 这还会阻止为设置了该选项的单元格调用 ta
  • 聊天室成员列表

    如何检索正在使用的聊天室的成员列表XMPP framework 我尝试使用 void xmppRoom XMPPRoom sender didFetchMembersList NSArray items 但它返回一个空数组 这个问题很老了
  • UIKit SDK 3.0错误

    我正在使用 iphone sdk 3 0 beta 5 9m2735 SDK 当我尝试使用模拟器 3 0 选项编译代码时 出现以下错误 该代码针对其余所有模拟器选项进行编译 即 2 0 2 1 2 2 2 2 1 编译我的代码时出现以下错误
  • UITableView 给出空表,不加载数据

    当保存我的表的视图是主 第一个 视图时 一切正常 但是 当它不是第一个视图并且我切换到该视图时 我的表不会加载数据 并且我得到一个空桌子 使用 NSLog 我可以看出该程序是不调用 numberOfRowsInSection 和 cellF
  • 如何打开/关闭 iPhone 相机闪光灯 swift 2?

    我正在寻找如何打开 关闭 iPhone 的相机闪光灯 我发现了这个 IBAction func didTouchFlashButton sender AnyObject let avDevice AVCaptureDevice defaul
  • Chrome 通知/权限栏 - 检测是否可见

    当 Flash 请求访问相机或麦克风时 Chrome 会显示以下通知栏 有没有 JavaScript 或 AS3 方法可以检测它是否可见 我知道你问这个问题已经很长时间了 但我们终于找到了一个我想分享的解决方法 ActionScript C
  • iphone:使用 iOS 5 和 Xcode 4.2 提交应用程序? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我有一个在
  • 从现在起测量时间间隔

    任何人都知道或可以提供一些与 timeIntervalSinceNow 方法相关的示例代码 我需要类似的东西 time2 当应用程序进入前台时 time1 当应用程序进入后台时 time3 时间差 这样我就可以使用这个数字 以秒为单位的首选
  • 如何查找哪个注释发送了showDetails?

    如何查找哪个注释发送了showDetails MKPinAnnotationView customPinView MKPinAnnotationView alloc initWithAnnotation annotation reuseId
  • 使用 Mono Touch 的 Iphone 键盘顶部带有完成按钮的工具栏?

    我需要使用 UIkeyboard type 数字键盘在工具栏上添加完成按钮 以便在单击完成按钮时退出键盘 我使用了输入附件视图 但它也添加到普通键盘 我需要在我有数字键盘的地方添加这个 例如 我有一个文本字段 它只需要我需要的数字 除了我不
  • iOS 上每个选项的带有图像的操作表

    有没有办法在 iOS 上将图像添加到操作表中 与苹果在应用程序商店或苹果音乐应用程序上所做的一样 我对苹果文档的基本搜索表明我没有在操作表中子类化或添加子视图 UIActionSheet 并非设计为子类化 也不应向其层次结构添加视图 苹果文

随机推荐

  • 准备好的陈述有简写吗?

    最近我开始使用准备好的语句 但是 我觉得我的代码变得有点过于混乱 包含所有临时变量和仅进行单个查询所需的额外行 到目前为止 我的代码如下所示 stmt conn gt prepare SELECT FROM locations WHERE
  • 无需本地信任库的客户端证书身份验证

    好吧 一开始这可能听起来很奇怪 所以请耐心听我说 我需要解决的问题是这样的 我需要以某种方式在 Spring Boot 应用程序中启用客户端身份验证 允许客户端自己创建证书 without服务器需要使用服务器私钥对 CSR 进行签名 我怎样
  • 防止任务管理器中的进程被关闭

    我正在开发一个小程序来提高工作效率 它应该在预设的分钟数后断开用户与互联网的连接或关闭您的计算机 不应使用任务管理器关闭该程序 我可以编译该程序并运行它 但我可以使用任务管理器关闭它 我的灵感来自于这一页 include
  • 如何用 sed、awk 等 shell 命令的输出替换子字符串?

    我想用sed或任何命令行工具 用 shell 命令的输出替换部分行 例如 通过调用将 linux 纪元替换为人类可读的时间戳date 通过调用内部解码器 将特定协议数据包的十六进制转储替换为其解码后的对应数据包 sed似乎最合适 因为它也允
  • Div 在 IE8 中不会浮动

    这将是主要标记 div class mancha div class logo div div class espacio div class eltitular HEADER div div class lacarta LEFT CONT
  • 将随机森林预测作为列添加到测试文件中

    我在 python 中工作pandas in a Jupyter笔记本 我在其中为泰坦尼克号数据集创建了一个随机森林模型 https www kaggle com c titanic data 我读入测试和训练数据 然后清理它并添加新列 两
  • 使用node/js/MySQL工作台将变量传递给查询字符串

    问题 将变量传递到插入语句时 我在数据库中收到空插入 变量有名字 姓氏 电子邮件 密码 我所知道的 我知道我正在获取用户输入表单数据 我正在安慰它们在插入语句之前存储的变量 该语句起作用并将表单数据打印到控制台 当表单在网页上提交时 它存储
  • C# 中两个进程之间的同步。

    有什么办法可以让我们同步两个独立的进程吗 就像如果他们共享资源一样 我想同步它们 我正在使用 C 你可以使用 Mutex 类 请参阅此处的文档 http msdn microsoft com en us library system thr
  • 如何制作库存物品标签 (IN619200) 为收到的每件物品打印一个标签?

    开箱即用Acumatica Inventory Item Label报告 IN619200 旨在仅当项目序列化时才在收据上打印该行项目的多个标签 我们将修改报告 允许用户选择收据编号 并让系统根据每件商品收到的数量生成标签数量 无论它们是否
  • 在 jPanel 周围拖动/移动形状

    昨天我问了一个关于如何绘制边界框以在内部容纳形状的问题如何拖放所选形状 第一个问题就解决了 但我在移动形状时遇到了一些麻烦 是否有任何特定的转换可以在 jPanel 周围移动形状 我有这个代码 public boolean drag Mou
  • Qt 5.2.0 缺少相机服务

    我有一个罗技高清网络摄像头 C270 我想编写一个简单的网络摄像头应用程序 因此我尝试编译 Qt 摄像头示例 Qt Qt5 2 0 5 2 0 msvc 2010 opengl examples multimediawidgets came
  • 如何在sql server中使用like运算符选择匹配百分比高于其他记录的记录?

    我有一组记录需要使用条件进行搜索 但标准返回我多行 因此 我需要具有最大标准匹配百分比的前 2 条记录 我研究了模糊逻辑 但发现对于如此简单的问题来说它太复杂了 我有如下场景 SELECT DISTINCT FirstName LastNa
  • 根据深色或浅色模式更改样式

    我想在我的 Vue 应用程序上有一个深色和浅色主题 我可以创造dark scss文件并更改类样式和使用 important属性来覆盖组件中定义的样式 或者我可以使用props在我的组件中并更改 classNamev if根据主题 例如将类别
  • Microsoft Bond 架构演变最佳实践

    Microsoft Bond 是否有一些关于架构如何随时间演变的最佳实践 我想确保我们遵循最佳实践 以便我们具有两种方式的兼容性 即允许我们的 Bond 类型将旧版本演变成当前版本 以及向后兼容性允许从较新版本转换回旧版本 我没有在文档中看
  • .net core AsyncLocal 失去了价值

    我使用类似的模式HttpContext访问器 简化版本如下 Console WriteLine SimpleStringHolder StringValue 不应该为空 public class SimpleStringHolder pri
  • 如何查看mysql中索引的大小(包括主键)

    2个常见的答案是使用显示表状态 and INFORMATION SCHEMA TABLES 但似乎 他们都没有计算主键的大小 我有包含数百万条记录的表 带有主键且没有其他索引 上面提到的两种方法都显示Index length 0对于那些桌子
  • 试图获取非对象 SimpleXML 的属性?

    我当前正在使用以下代码从 REST api 检索信息 url http api remix bestbuy com v1 products 28upc upc 29 apiKey API KEY xmlfiledata file get c
  • 如何将函数应用于 data.frame 的每个元素?

    我想将一个数值转换为一个因子 如果该值低于 2 则 down 应该是因子 如果它高于2 则 up 和 no change 之间 到目前为止我考虑过创建一个函数 classifier lt function x if x gt 2 retur
  • APDU 在 mifare classic 上写入块命令

    我一直在尝试将一些数据写入我的 Mifare 经典卡 首先我发送这两个命令 返回 90 00 加载 Mifare 钥匙 FF 82 20 01 06 FF FF FF FF FF FF 认证 FF 86 00 00 05 01 00 01
  • 制作 iPhone 应用程序时是否可以嵌入或加载 SWF(Apple 是否允许)

    我对在为 iphone 制作应用程序时是嵌入 swf 还是加载它们有点困惑 有谁知道每个的优点是什么 最好使用哪个 我知道嵌入 swf 应该比加载它们快一点 但这就是全部吗 另外 这一点很重要 我读到苹果将拒绝任何带有外部 swf 的应用程