Actionscript 3 尝试捕获问题actionscript3 IOErrorEvent

Actionscript 3 尝试捕获问题actionscript3 IOErrorEvent,actionscript-3,url,try-catch,flash,Actionscript 3,Url,Try Catch,Flash,这是用as3编写的图像共享应用程序。在我的ftp中有一个文件“/Images”,其中包含图像。名称为1.jpg 2.jpg 3.jpg,直到21.jpg(文件夹中有21个图像)。如您所见,有两个变量totalImages和imageNumber。我输入了totalImages=100。 当我点击next按钮时,它将进入下一页(next image.Starting 1.jpg)。但当出现图像21(最后一张图像)时,如果我点击下一步按钮,我将无法通过图像22。(没有22.jpg)。我会在Flash

这是用as3编写的图像共享应用程序。在我的ftp中有一个文件“/Images”,其中包含图像。名称为1.jpg 2.jpg 3.jpg,直到21.jpg(文件夹中有21个图像)。如您所见,有两个变量totalImages和imageNumber。我输入了totalImages=100。 当我点击next按钮时,它将进入下一页(next image.Starting 1.jpg)。但当出现图像21(最后一张图像)时,如果我点击下一步按钮,我将无法通过图像22。(没有22.jpg)。我会在Flash上的输出中出现这个错误。错误#2044:未处理的IOErrorEvent:。text=错误#2036:加载从未完成。我想使用try-catch方法并查看swf内部的错误。但是我不知道我把try和catch放在代码的什么地方。先谢谢你

import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.Event;
import flash.events.MouseEvent;
import fl.transitions.Tween;
import fl.transitions.easing.*;



//*****************CREATING VARIABLES*****************************//

//the array has all picture labels
//var myGlow:GlowFilter = new GlowFilter(0xffffff,1,10,10,255);// saving the glow
//var myShadow:DropShadowFilter = new DropShadowFilter(6);// saving the shadow to be applied later
var totalImages=100;
var imageNumber=1;
var myLoader:Loader = new Loader();


//************LOADING IMAGES TO STAGE********************//
//elearningau.com/nondynamic/
var myRequest:URLRequest = new URLRequest("http://www.elearningau.com/nondynamic/Images/"+imageNumber+".JPG");

myLoader.load(myRequest);
addChildAt(myLoader,1);// will be added under the buttons layer but over the texture


//************CENTERING THE PICS****************//

myLoader.contentLoaderInfo.addEventListener(Event.INIT, getImageInfo);
function getImageInfo(event:Event){
    myLoader.width = 485;
    myLoader.height = 360;
    var imgX=(stage.stageWidth- myLoader.width)/(-1)*(1/25);
    var imgY=(stage.stageHeight- myLoader.height)/2;
    myLoader.x=imgX;
    myLoader.y = imgY;// lines 37,38,39 & 40 are centering the loader formulae
    //myLoader.filters = [myGlow, myShadow];// adding a white color glow / grey shadow
    //var myTween:Tween = new Tween(myLoader, "alpha", None.easeNone, 0,1,2,true);//apply fade in

    }
//**************GOING TO NEXT IMAGE********************************//

rightButton.addEventListener(MouseEvent.CLICK, nextImage);

function nextImage(event:MouseEvent){

    if(imageNumber<totalImages)
    {
        imageNumber++;
    }
    else (imageNumber=1);
    reload();


}
//**************GOING TO PREVIOUS IMAGE********************************//

leftButton.addEventListener(MouseEvent.CLICK, previousImage);
function previousImage(event:MouseEvent){
    if(imageNumber>1)
    {
        imageNumber--;
    }
    else (imageNumber=totalImages);
    reload();
    }

//*****************RELOADING****************************//
//elearningau.com/nondynamic/
function reload(){
    removeChild(myLoader);
    myRequest= new URLRequest("http://www.elearningau.com/nondynamic/Images/"+imageNumber+".JPG");
    myLoader.load(myRequest);
    addChildAt(myLoader,1);// will be added under the buttons layer but over the texture
    }
导入flash.display.Loader;
导入flash.net.URLRequest;
导入flash.events.Event;
导入flash.events.MouseEvent;
导入fl.transitions.Tween;
导入fl.transitions.easing.*;
//*****************创建变量*****************************//
//该数组具有所有图片标签
//var myGlow:GlowFilter=新的GlowFilter(0xffffff,1,10,10255);//拯救光明
//var myShadow:DropShadowFilter=新的DropShadowFilter(6);//保存阴影以便以后应用
var totalImages=100;
var imageNumber=1;
var myLoader:Loader=new Loader();
//************将图像加载到舞台********************//
//elearningau.com/nondynamic/
var myRequest:URLRequest=新的URLRequest(“http://www.elearningau.com/nondynamic/Images/“+imageNumber+”.JPG”);
myLoader.load(myRequest);
addChildAt(myLoader,1);//将添加到“按钮”层下但纹理上
//************将图片居中****************//
myLoader.contentLoaderInfo.addEventListener(Event.INIT,getImageInfo);
函数getImageInfo(事件:事件){
myLoader.width=485;
myLoader.height=360;
var imgX=(stage.stageWidth-myLoader.width)/(-1)*(1/25);
var imgY=(stage.stageHeight-myLoader.height)/2;
myLoader.x=imgX;
myLoader.y=imgY;//第37、38、39和40行是装载机公式的中心
//myLoader.filters=[myGlow,myShadow];//添加白色辉光/灰色阴影
//var myTween:Tween=新Tween(myLoader,“alpha”,None.easeNone,0,1,2,true);//应用淡入
}
//**************转到下一张图片********************************//
rightButton.addEventListener(MouseEvent.CLICK,下一页);
函数下一个时间段(事件:MouseEvent){
如果(图像编号1)
{
图像编号--;
}
else(imageNumber=totalImages);
重新加载();
}
//*****************重新加载****************************//
//elearningau.com/nondynamic/
函数重载(){
removeChild(myLoader);
myRequest=新的URL请求(“http://www.elearningau.com/nondynamic/Images/“+imageNumber+”.JPG”);
myLoader.load(myRequest);
addChildAt(myLoader,1);//将添加到buttons层下的纹理上
}

加载程序中缺少错误处理程序:

loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onError);

function onError(e:IOErrorEvent):void {}

try/catch不能处理异步事件,加载是异步的。

谢谢。那么您能给我一些建议吗?我该怎么办?如果我按nextbtn(21.jpg到22.jpg,但没有22.jpg),它将返回1.jpgYour
totalImages
等于100。你应该把它改成21。所有的逻辑似乎都到位了。:)聪明的解决方案。但是如果你不知道有多少张图片呢。因为这个原因,我要求试一试。如果拍摄错误#2044,则交换图像1.jpg