LocalConnection连接到actionscript 1 swf的问题

时间:2008-12-09 16:56:03

标签: flash actionscript-3 actionscript

我正在构建一个shell应用程序,它将根据用户所在的章节和哪个部分加载其中的其他swf。shell是在actionscript 3中编写的,它在其中加载各种AS3,AS2和AS1 swfs 。在加载AS2和AS1 swf后,我正在使用LocalConnection为flash设置正确的变量,以找到要为该章/ swf加载的正确XML文件。到目前为止,我在加载AS2 swfs方面没有任何问题,但我只是似乎没有设置和加载2或3个AS1 swfs。除了调试或配置旧代码之外,我以前在AS1上做的工作很少,所以我想知道我是否只是错过了一些非常明显的东西?

以下是从AS3加载和连接到AS1 swf的代码:

AS1SWF = evt.target.content;
sendSwf_lc = new LocalConnection();
addChild(AS1SWF);
stopPlayback(fileID);

private function stopPlayback(fileID:String):void {
sendSwf_lc.send("LocalConnection", "init", fileID, "English");
}

以下是AS1应用程序中用于接收LocalConnection调用的代码。

var conn:LocalConnection;
conn = new LocalConnection();
conn.connect("LocalConnection");

conn.init = function(chapter, language) {

drillFile = "matching/xml/"+chapter+".xml";
drill = new XML();
drill.ignoreWhite = true;
drill.onload = getDrillXML;
drill.load(drillFile);
this.close();
}

function getDrillXML() {
trace("Application is starting now!");
//Rest of code
}

我显然已经离开了一些东西,但这是swf到达的地方......它将正确加载AS1 swf并发送正确的变量并触发init函数。它不会触及onLoad事件的getDrillXML函数。我已经使用功能正常的XML和无法运行的XML测试了它,如果XML路径不正确,肯定会抛出错误加载消息,因此当我正确地执行它时,肯定会加载正确的XML。我在getDrillXML函数的最顶部有一个跟踪语句,它永远不会出现,所以它必须是涉及AS1中XML类的东西,它不能正确加载XML文件,完成加载然后转到指定的函数完成之后。

我已经在没有LocalConnection的情况下对此进行了测试,并且只使用本地swf对其中的变量进行了硬编码,它运行正常,所有内容都加载,应用程序按预期工作。

有没有其他人遇到此事?这是范围问题吗?我是否遗漏了AS1版LocalConnection或XML类的内容?该文件发布到flash player 6 swf。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

叹息

我没有编写AS1应用程序的代码,我不知道为什么当SWF是一个独立的应用程序时这可行,但是为什么它在AS3 shell应用程序内部加载时不起作用,但是xml onLoad事件在原始swf中拼错为onload。我不敢相信我一直浪费在如此微不足道的事情上哈哈,男人......有时编码可能令人沮丧。

感谢任何阅读此内容的人,接下来的头痛!