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


Автор: nilrem 15.2.2006, 11:25
у меня вот такая проблемма :
"
TmpFile= new LoadVars();//заливаю из файла название картинок
TmpFile.onLoad = function() {
var tmp_ar = new Array();
var l = 1;
TmpFile.col=Number(TmpFile.col);//заливаю из файла название картинок в тмп масив
while(l<= TmpFile.col) {
if(typeof eval("TmpFile.img"+l) == "undefined"{break;}
else{
var bufer = eval("TmpFile.img"+l);
tmp_ar.push(bufer);
++l;
}
}
//Залил
for(i = 0; i<TmpFile.col; i++){
var TmpClip = "TmpClip"+i;
createEmptyMovieClip(TmpClip,(i+1)*100);
eval(TmpClip).loadMovie("img/"+tmp_ar);
eval(TmpClip)._x =i*100;//размещение малых картинок
eval(TmpClip)._y =0;
//ресую окантовку
top =eval(TmpClip)._y+52;
bottom = eval(TmpClip)._y;
left = eval(TmpClip)._x;
rigth =eval(TmpClip)._x+52;
TmpKontur = "TmpKontur"+i;
createEmptyMovieClip(TmpKontur,i);
with(eval(TmpKontur)){
lineStyle(2);
beginFill(0xFFFFFF);
moveTo(eval(TmpClip)._x,eval(TmpClip)._y);
lineTo(left,bottom);
lineTo(rigth,bottom);
lineTo(rigth,top);
lineTo(left,top);
lineTo(left,bottom);
endFill();
hitArea = eval(TmpKontur);
}
Mouse.addListener(eval(TmpKontur));
eval(TmpKontur).onPress = function(){
trace(i)};//Здесть выводит только последнее сзначение счетчика цыкла smile
}

}
TmpFile.load("img/img_mass.txt";
"

вот код.... как зделать так что в функии onPress пременная i менялась ... ато каковота она во всех кнопках преобретает последнее значение счетчика цыкла smile


Автор: AlDev 16.2.2006, 07:46
1. Тэг code все-таки использовать стоит!
2. Ошибок море.
3. Неужели код нельзя писать поаккуратнее?
4. Дык у тебя значение i при вызове onPress и будет всегда в конце цикла smile Ведь он смотрит на то, что в цикле.
Код

var main_mc:MovieClip = this;
var TmpFile:LoadVars = new LoadVars();//заливаю из файла название картинок
TmpFile.onLoad = function(success:Boolean):Void
{
    if (success)
    {
        var tmp_ar:Array = new Array();
        var l:Number = 1;
        TmpFile.col = Number(TmpFile.col);//заливаю из файла название картинок в тмп масив
        while(l<=TmpFile.col) 
        {
            if (TmpFile["img"+l.toString()] == "undefined")
            {
                break;
            }else
            {
                tmp_ar.push(TmpFile["img"+l.toString()]);
                ++l;
            }
        }
        //Залил
        var TmpClip:MovieClip;
        var TmpBounce:MovieClip;
        var width:Number = 52;
        var height:Number = 52;
        for(var i:Number = 0; i<TmpFile.col; i++)
        {
            TmpClip = main_mc.createEmptyMovieClip("TmpClip"+i.toString(),(i+1)*100);
            TmpClip.loadMovie("./img/"+(tmp_ar[i].toString()));
            TmpClip._x = i*100;//размещение малых картинок
            TmpClip._y = 0;
            //рисую окантовку
            TmpBounce = main_mc.createEmptyMovieClip("TmpKontur"+i.toString(),i);
            TmpBounce.lineStyle(2);
            TmpBounce._x = TmpClip._x;
            TmpBounce._y = TmpClip._y;
            TmpBounce.moveTo(0,0);
            TmpBounce.beginFill(0xFFFFFF);
            TmpBounce.lineTo(width,0);
            TmpBounce.lineTo(width,height);
            TmpBounce.lineTo(0,height);
            TmpBounce.lineTo(0,0);
            TmpBounce.endFill();
            TmpBounce['index'] = i;
            TmpBounce.onPress = function():Void
            {
                trace (this['index']);
            }
        }
    }else
    {
        trace ('load error');
    }
}
TmpFile.load("img/img_mass.txt");

Автор: nilrem 16.2.2006, 13:21
Ух огромное спасибо ... примного благодарен smile

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