在编译/发布时将XML嵌入到Flash文件中?

时间:2012-07-18 14:47:57

标签: xml flash actionscript-2

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

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

据我所知,AS3中有[embed]元标记,但遗憾的是我无法使用AS2。

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

2 个答案:

答案 0 :(得分:1)

在AS3中,您可以对XML进行硬编码(不使用嵌入语法):

private var myXml:XML = <root_node>
                            <child_1 />
                            <child_2 />
                        </root_node>;

我刚做了一个快search for AS2,看起来你可以这样做(请注意链接的文章提到了一个或两个坑):

xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.parseXML("<root_node><child_1 /><child_2 /></root_node>;");

答案 1 :(得分:0)

经过广泛测试后,我发现我的限制太多,不能单靠Flash来解决我的问题。

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

  1. 我无法嵌入XML(AS3功能)。
  2. 如果我尝试将整个XML粘贴到舞台上的文本字段中,它会超过最大字符数限制65535.
  3. 我无法将XML直接粘贴到代码编辑器中(多行字符串文字是AS3功能)。
  4. 对于#3,即使在我转义所有引号并删除换行符之后,Flash也会阻塞一个很长的变量。
  5. 所以我做的是创建一个单独的HTML页面,使用jQuery我加载目标XML文件并清理Flash文件没有使用的所有数据,并将结果吐出到div上,正确地转出角度括号和引号,这样结果XML数据足够小,可以放在我可以用作输入的舞台上的文本字段中。

    所以工作流程变成:

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

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

相关问题