我知道如何在 ActionScript 2 中访问外部 XML 文件,但是在这个项目中,要求 SWF 文件必须是自包含的。
我保留 XML 的原因是因为它是另一个程序的输出,所以如果我可以保持 XML 原样,我就可以避免手动输入数据。
我知道 AS3 中有 [embed] 元标记,但不幸的是我被 AS2 卡住了。
有没有办法使用 ActionScript 2 在编译/发布时嵌入 XML 文件,或读取数据并存储为变量?
我知道如何在 ActionScript 2 中访问外部 XML 文件,但是在这个项目中,要求 SWF 文件必须是自包含的。
我保留 XML 的原因是因为它是另一个程序的输出,所以如果我可以保持 XML 原样,我就可以避免手动输入数据。
我知道 AS3 中有 [embed] 元标记,但不幸的是我被 AS2 卡住了。
有没有办法使用 ActionScript 2 在编译/发布时嵌入 XML 文件,或读取数据并存储为变量?
在 AS3 中,您可以硬编码 XML(不使用嵌入语法):
private var myXml:XML = <root_node>
<child_1 />
<child_2 />
</root_node>;
我刚刚快速搜索了 AS2,看起来你可以这样做(注意链接的文章提到了一两个陷阱):
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.parseXML("<root_node><child_1 /><child_2 /></root_node>;");
经过大量测试,我发现我的局限性太大了,不能仅仅依靠 Flash 来解决我的问题。
因为我仅限于 AS2 并且我不能使用外部 XML,这意味着......
所以我所做的是创建一个单独的 HTML 页面,使用 jQuery 我加载目标 XML 文件并清理 Flash 文件未使用的所有数据,并将结果吐出到 div 上,正确转义尖括号和引号,这样结果 XML 数据就足够小,可以放入舞台上的文本字段中,我可以将其用作输入。
所以工作流程变成:
Generate XML -> Open HTML page -> Copy Cleaned XML -> Paste into Textfield in Flash -> Publish
这可能是另一个步骤,但 HTML/JavaScript 可以在任何地方运行,并且对我的用户来说非常简单,因此考虑到我的局限性,它最终成为一个很好的解决方案。