AS3 - addChild错误#1009 - IOErrorEvent.IO_ERROR

时间:2014-12-26 13:11:46

标签: actionscript-3 error-handling

我一直收到错误#1009,因为我试图在ioErrorHandler函数中使用addChild显示一个Alert Box。

trace("IOErrorEvent: " + event);运行正常。但是我的Alert Box类中有Error #1009

////---- Display Alert Box 
private function displayAlertBox():void
{
    alertBoxContainer.x = stage.stageWidth - alertBoxBg.width >> 1;
    alertBoxContainer.y = stage.stageHeight - alertBoxBg.height >> 1;
    addChild(alertBoxContainer);
}

这是我的代码。除了错误事件处理程序内部,Alert Box类在其他任何地方都可以正常工作。你真的可以在错误事件处理程序中使用addChild吗?我尝试从错误事件处理程序内部调用一个函数来显示Alert Box类,但仍然无法正常工作。

//Display Alert Box
private var alert_Box:alertBox;

var _userIdRequest:URLLoader = new URLLoader();
_userIdRequest.load(new URLRequest("http://www.example.com/New_User_Id.php"));
_userIdRequest.addEventListener(flash.events.Event.COMPLETE, CompleteHandler);
_userIdRequest.addEventListener(flash.events.IOErrorEvent.IO_ERROR, ioErrorHandler);

////--- Error Handler;
function ioErrorHandler(event:flash.events.IOErrorEvent):void 
{
    // not able to connect to the server
    trace("IOErrorEvent: " + event);

    alert_Box = new alertBox();
    addChild(alert_Box);
}       

2 个答案:

答案 0 :(得分:0)

我尝试了新项目,一切顺利。

我将此代码放入第一帧。我正在使用Flash CC

import flash.events.Event;

//Display Alert Box
var alert_Box:alertBox;

var _userIdRequest:URLLoader = new URLLoader();
_userIdRequest.load(new URLRequest("http://www.example.com/New_User_Id.php"));
_userIdRequest.addEventListener(flash.events.Event.COMPLETE, CompleteHandler);
_userIdRequest.addEventListener(flash.events.IOErrorEvent.IO_ERROR, ioErrorHandler);

////--- Error Handler;
function ioErrorHandler(event:flash.events.IOErrorEvent):void {
    // not able to connect to the server
    trace("IOErrorEvent:");
    alert_Box = new alertBox();
    addChild(alert_Box);

    alert_Box.x = stage.stageWidth/2;
    alert_Box.y = stage.stageHeight/2;
} 

function CompleteHandler (e:Event):void {
    trace("complete!");
}

在我的情况下, alertBox 是一个正方形...
我认为你的alertBox类有两个问题吗?

答案 1 :(得分:0)

我发现了我的问题。我总共有3节课:

splashScreen类 consumerId类 AlertBox类

加载的主类是splashScreen类。在splashScreen类的内部,我调用了consumerId类来创建一个id。如果连接到我的服务器的网址出现问题。触发IOErrorEvent错误,并且应该从consumerId类内部显示AlertBox类。好吧,经过大量的测试。我无法在consumerId类中加载AlertBox。这就是我得到#1009错误的方法。一旦我从consumerId类的IOErrorEvent错误处理程序内部将静态函数发送回slashScreen类。我可以从splashScreen类内部调用AlertBox类,并显示Alert Box。