存储在数组中的AS3 URLRequest现在需要加载,怎么样?

时间:2010-02-16 23:45:05

标签: flash actionscript-3 urlrequest

嘿伙计们,我这里有一些代码可以随机抽取一个文件中的50个图像并将它们推入一个数组中。我现在需要从阵列中随机抽取350次。我正在使用计时器代替for循环来从阵列中获取图像。我的代码工作正常,只要我不使用数组,我直接从文件循环图像。但那是非常缓慢和糟糕的形式。我想我可以做除了数组的.load之外的所有事情。我似乎无法使其发挥作用。我收到错误,说“#1009:无法访问空对象引用的属性或方法”或“1067:类型Array的值隐式强制到不相关的类型flash.net:URLRequest”。我想我明白了这些消息,但我似乎无法弄清楚如何将URLRequests拉回数组。拜托,非常感谢任何帮助。

var imgLoader:Loader; 
var imgSource:URLRequest; 
var imgArrayer:Array = new Array(); 
var imgNum:uint; 
var timer1Count:uint; 
var thumbFade:Tween; 
var layerCount:uint = 0;  



for(var i:uint = 0; i < 50; i++) {
    imgNum = Math.random() * _imgCount;
    imgSource = new URLRequest("thumbsFinal/img"+imgNum+".jpg"); 
    imgArrayer.push(imgSource);
}


var myTimer:Timer = new Timer(_imgTrTime, _imgTrInt); 
    myTimer.addEventListener(TimerEvent.TIMER, timedFunction);
    myTimer.start();


function timedFunction(e:TimerEvent):void{
    imgLoader.load(imgArrayer);
    thumbFade = new Tween(imgLoader, "alpha", Regular.easeIn, _thumbFaderB, _thumbFaderF, _thumbFaderSpd, true);
    addChildAt(imgLoader, layerCount);
    imageAdjust();
    timer1Count++;
    layerCount++;


        if(timer1Count == _scrnFadeTimer) {
            screenFade();
        }
        else if(timer1Count == _txtDeploy){
            textTween();
        } 
}

1 个答案:

答案 0 :(得分:1)

这个位可能是:

for(var i:uint = 0; i < 50; i++) {
    imgNum = Math.floor(Math.random() * _imgCount); 
    imgSource = new URLRequest("thumbsFinal/img"+imgNum+".jpg"); 
    imgArrayer.push(imgSource);
}

并且拉出350次的位将是:

imgLoader.load(imgArrayer[Math.floor(Math.random() * (imgArrayer.length))]);

在该计时器中调用350次