AS3 URLRequest хранится в массиве теперь нужно загрузить, как? - PullRequest
1 голос
/ 17 февраля 2010

Эй, ребята, у меня есть немного кода, который случайным образом извлекает 50 изображений из файла и помещает их в массив. Теперь мне нужно вытащить, случайно, 350 раз из массива. Я использую таймер вместо цикла for, чтобы получить изображения из массива. Мой код работает нормально, если я не использую массив и зацикливаю изображения прямо из файла. Но это очень медленно и плохо. Я думаю, что я могу сделать все, кроме .load массива. Я не могу заставить его работать. Я получаю сообщения об ошибках: «# 1009: невозможно получить доступ к свойству или методу пустой ссылки на объект» или «1067: неявное приведение значения типа Array к несвязанному типу flash.net:URLRequest». Я думаю, что понял смысл этих сообщений, но я не могу понять, как вытащить URLRequest обратно из массива. Пожалуйста, любая помощь очень ценится.

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 Ответ

1 голос
/ 17 февраля 2010

этот бит может быть:

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 раз

...