Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Не работает onRollOver (http://www.flasher.ru/forum/showthread.php?t=127032)

true11 03.07.2009 03:24

Не работает onRollOver
 
Ммм такая вот проблема:
Ролловер срабатывает, но почему то все время выдает самую последнюю i.(Трейсит все время ROLL OVER alb_10) Почему впринципе понятно.. Но как привязать событие в цикле именно к нужному ролику?

Код AS1/AS2:

var startX = 4;
var startY = 30;
var spacing = 20; // Промежуток между мувиками
var columns = 5; // Количество выводимых столбцов
var rows = Math.abs(ph_images.length/columns);
 
function writeRow(b,row){
        from=row*5; // С какого мувика начинаем
        if((from+4) < ph_images.length){to=from+4;}else{to=(ph_images.length-1);} // Вычисляем конечный мувик строки
        xSpacingCount=0; // Смещение по x
 
        RollCounter = from;
        for(i=from;i<=to;i++){
        xspacing = xSpacingCount*spacing
        yspacing = row*spacing
        xpos = startX+xspacing+100*xSpacingCount;
        ypos = startY+yspacing+100*row;
        this.attachMovie("album", "alb_"+i, this.getNextHighestDepth(), {_x:xpos, _y:ypos});
        this["alb_"+i].imageloader.loadMovie(ph_images[i]);
        this["alb_"+i].onRollOver = function(){trace('ROLL OVER alb_'+i);}
        trace(this["alb_"+i] + " loaded");
        xSpacingCount++;
        RollCounter++;
                }
        }
 
function showPreviews(){
        for(j=0;j<rows;j++){
                writeRow(5,j);
        }
}
 
 
 
showPreviews();


Juice_Green 03.07.2009 08:14

попробуйте перед rollOver объявить временную переменную j и использовать ее:
Код AS1/AS2:

var j=i;
this["alb_"+i].onRollOver = function(){trace('ROLL OVER alb_'+j);}

либо второй вариант - добавить к мувиклипу новое свойство и также его использовать:
Код AS1/AS2:

this["alb_"+i].i=i;
this["alb_"+i].onRollOver = function(){trace('ROLL OVER alb_'+this.i);}


true11 03.07.2009 09:07

Спасибо!


Часовой пояс GMT +4, время: 04:02.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.