Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > ActionScript 1,2 > Переменная не определяется(


Автор: max-@ 18.12.2007, 14:50
Код

function loader(image:MovieClip, jpg:String, posx:Number, posy:Number) {
    image._x = posx;
    image._y = posy;
    var mcLoader: MovieClipLoader = new MovieClipLoader();
    var listener: Object = new Object();
    mcLoader.addListener(listener);
    mcLoader.loadClip(jpg, image);
    
    var interval: Object = new Object();
    interval.id = setInterval(checkProgress, 100, mcLoader, image, interval);

    trace(image.id); // а вот тут все нормально, выдает значение

    function checkProgress(mcLoader:MovieClipLoader, image:MovieClip, interval:Object):Void {
        trace(image.id); // и так тоже undefined
        image.onPress = function() {
                trace(this.id); // пишет что переменная undefined
                trace(image.id); // и так тоже undefined

        }
        
        if(progress.bytesLoaded == progress.bytesTotal) {
            clearInterval(interval.id);
        }
    }
}


просветите пожалуйста как надо передавать мувик image в checkProgress чтобы его id было доступно?

Автор: Maksys 19.12.2007, 05:54
Сет интервал хрендючит параметры ... поюзай чтонить как нить с передачей объекта interval.. умаю там что то зарыто.. некогда разбираться если не получится вечером попробую седя разобраться

Автор: max-@ 19.12.2007, 15:08
ага пришлось через обьект интервала фигачить но я думал это глючный способ....все равно огромное спасибо за ответ

Автор: acdcee 9.1.2008, 12:33
беспощадно выдрал из хелпера smile
Код

function displayImage(mc_array:Array):Void {
    var numImage:Number = mc_array.length;
    var n:Number = 0;
    var numPage:Number = 0;
    if(_root.pagenum == 0 || _root.pagenum == 1) {
        numPage = 0;
    }else if(_root.pagenum == 2){
        numPage = 50;
    }else{
        numPage = (_root.pagenum * 50 - 50);
    }

    for (var m = numPage; m<numImage; m++) {
        n++;
        _global.mc_image_show = mc_array[m];
        var thisMC:MovieClip = this.createEmptyMovieClip("image"+m+"_mc", m);
        mcLoader_mcl.loadClip("gallery/"+mc_array[m], thisMC);
    
        preloaderMC = this.attachMovie("preloader_mc", "preloader"+m+"_mc", 5000+m);
        preloaderMC.bar_mc._xscale = 0;
        preloaderMC.progress_txt.text = "0%";
        thisMC._x = _global.thisX;
        thisMC._y = _global.thisY;
        preloaderMC._x = _global.thisX;
        preloaderMC._y = _global.thisY+20;
        if ((m+1)%6 == 0) {
            _global.thisX = 50;
            _global.thisY += 90;
        } else {
            _global.thisX += 90+50;
        }
        if(n%50 == 0){
            break;
        }
    }
}
var mcLoader_mcl:MovieClipLoader = new MovieClipLoader();
var mclListener:Object = new Object();
mclListener.onLoadStart = function() {
};
mclListener.onLoadProgress = function(target_mc, loadedBytes, totalBytes) {
    var pctLoaded:Number = Math.round(loadedBytes/totalBytes*100);
    var preloaderMC = target_mc._parent["preloader"+target_mc.getDepth()+"_mc"];
    preloaderMC.bar_mc._xscale = pctLoaded;
    preloaderMC.progress_txt.text = pctLoaded+"%";
};

mcLoader_mcl.addListener(mclListener);

может что то типа такого ???

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)