Просмотр полной версии : Имя мувиклипа
alex3dsflash
08.09.2011, 12:14
Доброго дня! Есть класс MyMovieClip;
Есть код:
var sdd=new MyMovieClip();
sdd.x=250;
sdd.y=250;
addChild(sdd);
КАК это дело засунуть в цикл,
for (i=1;i<100;i++){}
чтобы получилось 100 клипов (полноценных с новыми именами) :
sdd1,sdd2,sdd3, ........ sdd100
?????
Помогите пожалуйста!
var sdd2=new MyMovieClip();
sdd2 -- это имя переменной, в которой хранится ссылка на этот мувиклип. Это не имя клипа.
Имя клипа это sdd2.name .
Которое в данном случае пустое.
Вам никто не мешает обращаться к мувикам примерно так же, как вы и хотели.
var mc1 : MovieClip = new MovieClip();
var mc2 : MovieClip = new MovieClip();
var mc3 : MovieClip = new MovieClip();
for(var i : int = 1; i <= 3; i++){
var currMc : MovieClip = this["mc"+i];
}
alex3dsflash
08.09.2011, 12:50
Спасибо! Щас попробую!
Добавлено через 4 минуты
А... Понял. А тогда как в цикле создать динамично кучу переменных
mc1, mc2, mc3, итд?
BezDelnik
08.09.2011, 13:00
for(var i:int=0; i<3; i++) {
this['mc'+i] = new MovieClip();
}
Не обращайтесь к клипам по имени и только в крайних случаях при помощи чего-то типа this["mc"+i]; Это медленнее работает и иногда (это случится в самый неприятный момент, конечно) у вас может быть совпадение имён, что плохо ловится.
Делайте массив, складывайте туда.
var mcArray:Array = new Array();
for(var i : int = 1; i <= 3; i++){
var currMc : MovieClip = new MovieClip();
mcArray.push(currMc);
//тут можно сделать addChild(currMc);
}
Обращаться mcArray[i] - i-тый клип.
alex3dsflash
08.09.2011, 13:04
Спасибо огромное !!!
gloomyBrain
08.09.2011, 13:13
@BezDelnik Ваш способ будет работать только если класс объявлен как dynamic
alex3dsflash
08.09.2011, 13:28
for(var i:int=0; i<10; i++) {
this['mc'+i] = new MyMovieClip();
Null_mc.addChild(this['mc'+i]);
this['mc'+i].x=i*10;
trace(['mc'+i]);
}
mc9.addEventListener(MouseEvent.MOUSE_DOWN,Dragging);
function Dragging(event:Event){
mc9.startDrag(false, new Rectangle(-300, -300, 600, 600));
}
Предупреждение. Действия с кнопками или экземплярами объектов MovieClip не поддерживаются в ActionScript 3.0. Все сценарии, относящиеся к экземплярам объектов будут пропущены.
Не пишите в кадрах. Почитайте Мука или чо. Что-нибудь, как же программмировать блин на флэш. FAQ тутошний например.
alex3dsflash
08.09.2011, 13:37
А!!!!!!!!
Надо:
this.mc9.addEventListener(MouseEvent.MOUSE_DOWN,Dragging);
function Dragging(event:Event){
this.mc9.startDrag(false, new Rectangle(-300, -300, 600, 600));
}
Доперло!
Добавлено через 1 минуту
Мука читаю кажд день в метро. Просто c as2 на as3 перехожу с трудом..
Скорее с AS1 тогда уже, иначе перешли бы гораздо легче.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.