我创建了一个包含文本 TLF 的 swf。
之后,我将其加载到 flex 移动应用程序中。
一开始我在加载它时遇到了很多问题。
1- 首先是因为我使用了 Loader,并且该项目是使用 Flash Professional 创建的。最好的方法是使用 Flash Professional 中包含的 Flash 库的 ProLoader 加载它。
2-有一次我终于在桌面上的模拟器中加载并尝试了它,我在我的 iPad 上以调试和快速编译模式进行了尝试。我有下一个错误:
错误 #2100:Loader.loadBytes() 中的 ByteArray 参数的长度必须大于 0。
我修复了它在 FLA 中使用发布设置库中的选项“在代码中组合”编译 swf。伟大的!iPad 中的 TLF 有效!在 iOS 作品中!
3-但是当我构建相同代码的版本(以前在设备中调试时工作)时,当我打开它时,我只看到图像。不是文字。 为什么在调试而不是发布时工作?
你知道我忘记了什么吗?
提前非常感谢。
编辑添加一些代码
我嵌入了 swf 并将它们加载到项目渲染器中。该列表有一个 id 的数据提供者。我在每个项目渲染器中加载与 id 对应的 swf。
[Embed(source="/bin/histologia.swf")]
public const PAG_01:Class;
[Embed(source="/bin/histologia.swf")]
public const PAG_02:Class;
public function set data( value:Object ):void {
...
var pagAsset:Class = pagesAssets.assets[value];
var pag:MovieClip = new pagAsset();
var SWFClass:ByteArray = pag.movieClipData;
var ldrContext:LoaderContext = new LoaderContext(false, new ApplicationDomain(ApplicationDomain.currentDomain));
ldrContext.allowLoadBytesCodeExecution = true;
currentLoader.loadBytes(SWFClass, ldrContext);
¿loadBytes 暗示运行时代码?=(我在一篇Adobe 文章中读到了这个:
如果你使用 TLF 文本,我将代码、TLF 库合并到 swf 中,因为 iOS 不会在运行时加载 RSL。
但是我在做什么??我如何嵌入和使用它?我认为这个答案会对我有所帮助,但我不确定
更新 2
我已经更改了代码。使用来自@Jeff Ward 的 swf 合并,但结果是一样的。已加载 swf,但未显示 TLF 文本。
var pagAsset:Class = pagesAssets.assets[value];
var pag:MovieClip = new pagAsset();
addChild(pag);
为什么??