1

我知道如何在 ActionScript 2 中访问外部 XML 文件,但是在这个项目中,要求 SWF 文件必须是自包含的。

我保留 XML 的原因是因为它是另一个程序的输出,所以如果我可以保持 XML 原样,我就可以避免手动输入数据。

我知道 AS3 中有 [embed] 元标记,但不幸的是我被 AS2 卡住了。

有没有办法使用 ActionScript 2 在编译/发布时嵌入 XML 文件,或读取数据并存储为变量?

4

2 回答 2

1

在 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>;");
于 2012-07-18T18:20:27.240 回答
0

经过大量测试,我发现我的局限性太大了,不能仅仅依靠 Flash 来解决我的问题。

因为我仅限于 AS2 并且我不能使用外部 XML,这意味着......

  1. 我无法嵌入 XML(AS3 功能)。
  2. 如果我尝试将整个 XML 粘贴到舞台上的文本字段中,它会超过 65535 的最大字符限制。
  3. 我无法将 XML 直接粘贴到代码编辑器中(多行字符串文字是 AS3 功能)。
  4. 对于#3,即使我转义了所有引号并删除了换行符,Flash 也会在这么长的变量上窒息。

所以我所做的是创建一个单独的 HTML 页面,使用 jQuery 我加载目标 XML 文件并清理 Flash 文件未使用的所有数据,并将结果吐出到 div 上,正确转义尖括号和引号,这样结果 XML 数据就足够小,可以放入舞台上的文本字段中,我可以将其用作输入。

所以工作流程变成:

Generate XML -> Open HTML page -> Copy Cleaned XML -> Paste into Textfield in Flash -> Publish

这可能是另一个步骤,但 HTML/JavaScript 可以在任何地方运行,并且对我的用户来说非常简单,因此考虑到我的局限性,它最终成为一个很好的解决方案。

于 2012-07-19T19:39:21.133 回答