Просмотр полной версии : Мувиклип передается в функцию как ссылка или нет?
Добрый день,
var butt:MovieClip;
function attachButt(variable:MovieClip, name:String):Void {
variable = this.attachMovie(name, name+"1", 1);
}
attachButt(butt, "button1");
trace(butt); // выводит: undefined
Почему ссылка на клип не сохраняется в переменной? и как написать чтобы сохранялась?
var butt:MovieClip;
function attachButt (name:String):MovieClip {
var mc:MovieClip = this.attachMovie (name, name + "1", 1);
return mc;
}
butt = attachButt ("button1");
trace (butt);
Только смысл в функции нулевой, можно сразу сделать
var butt:MovieClip;
butt = this.attachMovie (name, name + "1", 1);
trace (butt);
nOobCrafter
19.02.2009, 14:19
function attachButt(name:String)
{
var variable = this.attachMovie(name, name + "1", 1);
return variable;
}
var btn:MovieClip = attachButt("button1");
trace(btn)
так вроде работает
З.Ы. долго думал(( iNils уже отписался..
iNils, спасибо, до такого решения я уже додумалась тоже. Но не хочется возвращать мувик, чтобы можно было вернуть что-то другое.
Смысл не нулевой - в функции ещё много всяких действий, которые я вычеркнула, как не относящиеся к вопросу =)
Понятно. Вы передаете ссылку на объект, а не на переменную. Поэтому у вас и получается undefined.
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);
Но такой способ плохой. Используйте массив для хранения ссылок на получаемые клипы.
вот оно что! ссылка на объект, а не на переменную.
Про то, что способ плох - поняла.
Спасибо большое!
nOobCrafter
19.02.2009, 15:30
iNils а если не сложно можешь обьяснить разницу между нашими примерами? к чему тут path[variable]? добавляем же всеравно в this... мне просто в целях общего развития интересно...
Можно и this, но тогда нельзя задавать переменные в других областях видимости. А так более гибко.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.