2014-12-26 3 views
0

Я продолжаю получать ошибку # 1009, потому что я пытаюсь отобразить окно предупреждения с помощью addChild внутри функции ioErrorHandler.AS3 - ошибка addChild # 1009 - IOErrorEvent.IO_ERROR

trace("IOErrorEvent: " + event); работает нормально. Но я получаю Error #1009 внутри моего класса Alert Box.

////---- 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); 
}  
+0

где твоя функция? находится в основном классе вашего проекта или в классе объекта? Возможно, может быть достаточно добавить свой объект alert_Box явным образом в корень с чем-то вроде MovieClip (root) .addChild (alert_Box); – cesare

+0

Я не добавил функцию выше. Я попробовал функцию и все еще не работал. – user3111472

ответ

0

Я понял свою проблему. У меня есть 3 классов Итого:

SplashScreen Класс consumerId Класс AlertBox Класс

Основной класс, который загружается класс SplashScreen. Внутри класса splashScreen я вызываю класс consumerId для создания id. Если есть проблема с подключением url к моему серверу. Ошибка IOErrorEvent запускается, и класс AlertBox должен отображаться изнутри класса consumerId. Ну, после многих испытаний. Я не могу загрузить AlertBox внутри класса consumerId. Вот как я получаю ошибку # 1009. Как только я отправлю статическую функцию обратно в класс slashScreen изнутри обработчика ошибок IOErrorEvent класса customerId. Я могу вызвать класс AlertBox из класса splashScreen и отобразить окно предупреждения.

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 есть проблемы вы добавить ребенка в два раза?

+0

Я использую Flash Builder 4.7. То, что я использую, является подклассом. – user3111472