替代 IOErrorEvent 事件中 errorId 的方法

因為 errorId 只能在 Adobe AIR 裡面用
所以如果想知道
errorId 的話可以用下面的方法來做:

theError_ldr.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
function ioErrorHandler(evt:IOErrorEvent):void
{
  var errorTargetName:String=evt.target.name;
  // trace(evt.target.name) >>> theError_ldr
  var defaultURL:String="Picture/System/sample.jpg";
  var errorId:String=evt.text.slice(7,11);

  /*
    trace(evt.text); 的話會出現
    Error #2035: 找不到 URL。
    URL: file:///D|/工作室/0031%5F線上測驗/student/Picture/99/20-1.jpg

    這個時候我們取從第 7 個字後開始到第 11 個字結束
    也就是 Error #2035: 找不到 URL。...
    剛好他就是我們要的 ID
    這樣一來就可以針對 errorID 用 switch 來判斷各種不同的錯誤要做哪些事情了
  */

  switch (errorId)
  {
    case "2035" :
      trace("錯誤代碼是 : "+errorId);
      pictureRequest.url=defaultURL;
      this[errorTargetName].load(pictureRequest);
      break;
  }
}

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *