Форум 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)
-   -   присвоить функцию к событию кнопки (http://www.flasher.ru/forum/showthread.php?t=97439)

Mnilionic 21.06.2007 05:55

присвоить функцию к событию кнопки
 
на сцене есть 10 экземпляром клипа с именами mc1 по mc10.
в каждом клипе есть кнопка btn
нужно чтоб при клике по кнопке срабатывала одна и та же функция но с разными параметрами:
Код:

var total = 10;
for(var i=1; i<=total; i++){

        var mc = eval("mc"+i);

        mc.func = new link(i);

        mc.btn.onRelease = mc.func.go;
}

function fgo(){
        trace(this.i);
}
function link(ii){
        this.i = ii;
        this.go = fgo;
}

mc5.func.go();
// выдаёт 5 - то есть работает
// но при клие по кнопке - undefined :(


Double 21.06.2007 08:08

Код:

fgo = function() {trace(this.i)}

total = 10;

for (i=1; i<=total; i++) {
  this["mc"+i].btn.i = i;
  this["mc"+i].btn.onRelease = fgo
}


Mnilionic 21.06.2007 18:54

Double, спасибо :)

А почему в моём вариента обращение this срабатывает к кнопке, а не к объекту?.

etc 21.06.2007 19:48

Потому что в AS2/AS1 привязка идет не к тому объекту, которому присвоена функция, а к тому, который её вызывает. В AS3 такого нет, поэтому там не нужны всякие Delegate и прочие костыльки.

Mnilionic 21.06.2007 21:11

__etc, ясно.


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

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