来自外部XML的链接不再起作用,AS3 / Flash

时间:2012-05-17 22:06:51

标签: xml actionscript-3

希望有人可以帮助我...我在Flash中加载了外部XML文件。它工作得很完美但是从本周开始就不再了。 XML文件中的链接是问题所在。我不知道为什么。 在Flash中,我收到消息: Error #2044: Unhandled IOErrorEvent:. text=Error #2035: URL Not Found. 我第一次点击按钮并且链接正常工作时加载XML,但之后根本没有加载任何文本和链接!

我给出了我使用的代码:

var txtFld:TextField = new TextField();
var txtFmt:TextFormat = new TextFormat();

var xml:XML;
var urlLoader:URLLoader = new URLLoader();
var urlRequest:URLRequest = new URLRequest("background.xml");
urlLoader.load(urlRequest);
urlLoader.addEventListener(Event.COMPLETE, onComplete, false,0,true);
function onComplete(evt:Event):void {
evt.target.removeEventListener(Event.COMPLETE, onComplete);
xml = new XML(evt.target.data);
}

txtFmt.font = avenirRoman.fontName; 
txtFmt.size = 12; 
txtFmt.leading = 4;
txtFmt.color = 0x616161; 
txtFld.defaultTextFormat = txtFmt; 
txtFld.embedFonts = true;
txtFld.antiAliasType = AntiAliasType.ADVANCED;
txtFld.thickness = -100;
txtFld.sharpness = 50;
txtFld.multiline = true;
txtFld.wordWrap = true; 
txtFld.width = 500; 
txtFld.autoSize = TextFieldAutoSize.LEFT; 
txtFld.x = 270; 
txtFld.y = 145;


btn10.addEventListener("click", afterClick2);
function afterClick2(e:Event):void {
txtFld.htmlText = xml.INFO[0].toString();
addChild(txtFld);

}

btn11.addEventListener("click", afterClick3);
function afterClick3(e:Event):void {
txtFld.htmlText = xml.INFO[1].toString();
addChild(txtFld);

}

btn12.addEventListener("click", afterClick4);
function afterClick4(e:Event):void {
txtFld.htmlText = xml.INFO[2].toString();
addChild(txtFld);

}

然后我尝试输入额外的(IOErrorEvent)代码:

urlLoader.addEventListener(IOErrorEvent.IO_ERROR, catchIOError);
function catchIOError(event:IOErrorEvent){
trace("Error caught: "+event.type);
}
urlLoader.load(new URLRequest("Invalid XML URL"));
trace("Continuing with script...");***

然后我收到消息: TypeError:错误#1009:无法访问空对象引用的属性或方法。     在main3_fla :: MainTimeline / afterClick2()

XML文件根本没有加载。如果我取出XML中的所有链接,文本加载完美。

有人可以告诉我什么是错的吗? 感谢

1 个答案:

答案 0 :(得分:0)

这整个“问题”真的很奇怪,你确定你在编写AS3代码吗? 我无法理解以下事情:

  1. 你的问题是什么?你可以加载你的xml文件和所有链接 一旦?当您尝试重新加载xml时第二次出现问题 文件?只要内部没有链接,它是否始终有效 XML文件?
  2. 你提到了一个加载你的xml文件的按钮,我看不到 代码中提供该功能的按钮
  3. 你从哪里尝试加载你的xml文件,它是你的本地文件 计算机还是来自网络某个地方(在网络服务器上)?
  4. 你做了一个新的URLRequest(“background.xml”),但你没有提供绝对的 URL,意思是这可能是某种路径改变所以 “background.xml”第二次链接到别的东西(不知道如何,但一切皆有可能)
  5. 您的代码看起来很奇怪我无法判断整个代码是否属于某个部分 构造函数或其他东西。你不止一次做“addChild”, 如果txtFld是某种类成员,这可能会成为一个问题 并且有多个类的实例。
  6. 我不明白你提供的IOErrorEvent示例,你在deliberatley抛出一个 错误,抓住它,然后期望它继续脚本 在urlRequest无效之前的catch块之外?
  7. 你所描述的错误#1009很简单,当你     输入该函数,您无权访问任何变量     “txtFld”,“xml”或xml看起来并不像你期望的那样。

    这一切归结为以下几点:

    • 除非您提供更多上下文,否则我无法帮您解决问题 当事物被初始化/创建以及事物被调用时,就像它一样 现在你正在混合初始化和调用而不给予
    • 的正确背景