PDA

Просмотр полной версии : Расклонировать Мувик по горизонтале


art_maestro
15.09.2013, 16:44
Здравствуйте

Подскажите, что я делаю не так.
Нужно по горизонтали расклонировать мувик 5 раз, тобиж получится у меня ряд одинаковых мувиков. Я пытаюсь делать это циклом, но нечего не получается. Что я делаю не так?

for(var i:int = 0; i<5;i++){
var cloneCirle:MovieClip = new MovieClip();
cloneCirle.addChild(mc_centrBg);
cloneCirle.x+=64;
menuItemNewButton.addChild(cloneCirle);
}
stage.addChild(menuItemNewButton);

menuItemNewButton - мувиклип

Azo
15.09.2013, 17:09
Привет! У тебя наверное все получилось! Просто мувиклип пустой и ты его не видишь...
for(var i:int = 0; i<5;i++){
var cloneCirle:MovieClip = new MovieClip();
cloneCirle.graphics.beginFill(0)
cloneCirle.graphics.drawRect(0,0,60,60);
cloneCirle.addChild(mc_centrBg);
cloneCirle.x+=64;
menuItemNewButton.addChild(cloneCirle);
}
stage.addChild(menuItemNewButton);

art_maestro
15.09.2013, 21:20
Спасибо огромное! Дело в том, что мувик я беру с библиотеки, в нем есть уже картинка. на сцене отображается только 1 мувик.

Azo
15.09.2013, 21:22
Ну тогда покажите правильный код.. В этом коде - не из библиотеки

Wolsh
15.09.2013, 21:45
cloneCirle.x+=64;Ну так они все и встают на х=64. Вы же новый cloneCirle создаете. Его х равен ноль. У всех. Потом увеличиваете этот ноль на 64. У всех.
cloneCirle.x = 64 * i;

caseyryan
15.09.2013, 21:47
Ошибка здесь
cloneCirle.addChild(mc_centrBg);
mc_centrBg - это экземпляр. Он всего один. Если его добавить в один мувиклип, то он автоматически удалится из другого. Так что невозможно его добавить в несколько мувиков сразу.

art_maestro
15.09.2013, 21:52
var menuItemNewButton:MovieClip = new MovieClip();
var mc:Class=getDefinitionByName('bg_centrClass') as Class;
var mc_centrBg:MovieClip = new MovieClip();
mc_centrBg.addChild(new mc);


for(var i:int = 0; i<5;i++){
var cloneCirle:MovieClip = new MovieClip();
cloneCirle.addChild(mc_centrBg);
cloneCirle.x+=64;
menuItemNewButton.addChild(cloneCirle);
}
stage.addChild(menuItemNewButton);

Wolsh
15.09.2013, 21:53
caseyryan О. И это тоже))
art_maestro Вы не исправили ни одной ошибки из двух указанных.
И зачем Вы создаете МувиКлипы? Есть же Спрайт.

art_maestro
15.09.2013, 21:54
Ошибка здесь
cloneCirle.addChild(mc_centrBg);
mc_centrBg - это экземпляр. Он всего один. Если его добавить в один мувиклип, то он автоматически удалится из другого. Так что невозможно его добавить в несколько мувиков сразу.

Я понял, сейчас попробую изменить. Спасибо.

Добавлено через 3 минуты
caseyryan О. И это тоже))
art_maestro Вы не исправили ни одной ошибки из двух указанных.

Я ошибку понял, просто пока я отвечал, еще комментарий оставили.

Да, буду использовать спрайт! Потом поменяю. я так понял, что строку

var mc_centrBg:MovieClip = new MovieClip();

надо вставить в цикл.

Wolsh
15.09.2013, 22:21
В цикле Вам надо new mc() создавать (если mc это класс мувика в библиотеке).
А уж во сколько там оберток вы его потом запихаете, дело хозяйское (сейчас уже три, кажется? О__о)

art_maestro
15.09.2013, 22:37
сделал по Вашей рекомендации. если я правильно понял

var mc:Class=getDefinitionByName('bg_centrClass') as Class;
for(i = 0; i<countItem;i++){
A[i] = new Sprite();
A[i].addChild(new mc());
menuItemNewButton.addChild(A[i]);
A[i].x +=64;
}


stage.addChild(menuItemNewButton);

на сцене видно только один мувик.


Все сделал. Спасибо, всем! Тему можно закрыть.

var mc:Class=getDefinitionByName('bg_centrClass') as Class;
for(i = 0; i<countItem;i++){
A[i] = new Sprite();
A[i].addChild(new mc());
menuItemNewButton.addChild(A[i]);
if(i>0)
{
A[i].x =A[i-1].x + 64;
}
else
{
A[i].x =0;
}
}