2017-02-09 25 views
0

Я пишу код для проверки XML с URL-адреса, он работает, когда существует соединение с Интернетом, но когда я вручную отключу интернет для тестирования диалогового окна «Ошибка», я не могу обработать это с try() catch().Как обрабатывать диалоговые окна с ошибками в ActionScripts 3

try { 
    var myXML: XML = new XML(); 
    var XML_URL: String = "https://drive.google.com/uc?export=download&id=0B5pkl4TJ7V0OTFBPanUyMWQxUnM"; 
    var myXMLURL: URLRequest = new URLRequest(XML_URL); 
    var myLoader: URLLoader = new URLLoader(myXMLURL); 
    myLoader.addEventListener(Event.COMPLETE, xmlLoaded); 

    function xmlLoaded(event: Event): void { 
     myXML = XML(myLoader.data); 
     trace("LOCK CODE: " + myXML.LOCK); 
     if (myXML.LOCK == 0) { 
      gotoAndStop(71); 
     }; 
    } 
} catch (e: Error) { 
    gotoAndStop(71); 
    trace("FAILED TO CHECK LOCK."); 
} finally { 
    gotoAndStop(71); 
    trace("FAILED TO CHECK LOCK."); 
} 

Как я могу скрыть этот диалог с пользователем?

+4

Добавить [URLLoader event listener] (http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/URLLoader.html#eventSummary) для IOErrorEvent.IO_ERROR, например. '' 'myLoader.addEventListener (IOErrorEvent.IO_ERROR, ioErrorHandler); Функция ioErrorHandler (событие: IOErrorEvent): void { trace ("ioErrorHandler:" + событие); } '' '. Вы все равно должны обрабатывать все события (например, ошибка безопасности и т. Д.) –

+0

Благодарим за быстрый и полезный ответ. –

+1

Кроме того, загрузка URL-адреса является асинхронной, поэтому ваш блок try-catch бесполезен здесь. – Vesper

ответ

1

Добавить URLLoader event listener для IOErrorEvent.IO_ERROR например.

myLoader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); 

function ioErrorHandler(event:IOErrorEvent):void { 
    trace("ioErrorHandler: " + event); 
} 

Вы должны обрабатывать все события как хорошая мера в любом случае (например, ошибки безопасности и т.д.) as3 docs example обеспечивает полезный сниппет

В идеале вы бы не только молча отслеживать сообщение, но, надеюсь, отображать полезную обратную связь или заполнить контент для пользователя, чтобы понять, чего ожидать.