Форум 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=121629)

dashaaa 19.02.2009 13:40

Мувиклип передается в функцию как ссылка или нет?
 
Добрый день,

Код AS1/AS2:

var butt:MovieClip;
function attachButt(variable:MovieClip, name:String):Void {
        variable = this.attachMovie(name, name+"1", 1);
}
attachButt(butt, "button1");
trace(butt); // выводит: undefined

Почему ссылка на клип не сохраняется в переменной? и как написать чтобы сохранялась?

iNils 19.02.2009 14:05

Код AS1/AS2:

var butt:MovieClip;
function attachButt (name:String):MovieClip {
        var mc:MovieClip = this.attachMovie (name, name + "1", 1);
        return mc;
}
butt = attachButt ("button1");
trace (butt);

Только смысл в функции нулевой, можно сразу сделать
Код AS1/AS2:

var butt:MovieClip;
butt = this.attachMovie (name, name + "1", 1);
trace (butt);


nOobCrafter 19.02.2009 14:19

Код AS1/AS2:

function attachButt(name:String)
{
        var variable = this.attachMovie(name, name + "1", 1);
        return variable;
}
var btn:MovieClip = attachButt("button1");
 
trace(btn)

так вроде работает
З.Ы. долго думал(( iNils уже отписался..

dashaaa 19.02.2009 14:20

iNils, спасибо, до такого решения я уже додумалась тоже. Но не хочется возвращать мувик, чтобы можно было вернуть что-то другое.
Смысл не нулевой - в функции ещё много всяких действий, которые я вычеркнула, как не относящиеся к вопросу =)

iNils 19.02.2009 15:12

Понятно. Вы передаете ссылку на объект, а не на переменную. Поэтому у вас и получается undefined.
Код AS1/AS2:

var butt:MovieClip = this;
function attachButt (path:MovieClip, variable:String, name:String):Void {
        path[variable] = this.attachMovie (name, name + "1", 1);
}
attachButt (this, "butt", "button1");
trace (butt);

Но такой способ плохой. Используйте массив для хранения ссылок на получаемые клипы.

dashaaa 19.02.2009 15:26

вот оно что! ссылка на объект, а не на переменную.
Про то, что способ плох - поняла.
Спасибо большое!

nOobCrafter 19.02.2009 15:30

iNils а если не сложно можешь обьяснить разницу между нашими примерами? к чему тут path[variable]? добавляем же всеравно в this... мне просто в целях общего развития интересно...

iNils 19.02.2009 15:50

Можно и this, но тогда нельзя задавать переменные в других областях видимости. А так более гибко.


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

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