in4core
23.12.2013, 03:21
Век живи век учись! Никогда бы не мог подумать, что в сортировке есть некая изюминка.
Рассказываю по порядку.
Имеем : контейнер(cont) в котором находятся еще N мувиков.(mcX) Имеем управляющий класс в который передается один из этих мувиков. И так
for(var i:int = 0; i < 5; i++)
var mcController:MCController = new MCController(cont.mc["" + i]);
addChild(mcController);
/*(Constructor)... public fuction MCController(mc:MovieClip) { addChild(mc) } */
Что мы по сути сделали. Создали некий класс приемник мувклипа, добавили ( уже добавленный в cont ) еще раз этот мувиклип в дисплей лист класса, но уже другого контейнера ( MCController ) , а затем добавили этот контейнер так же в список отображения. Если рассуждать прямо и логично, то написав теперь в любом месте кода addChild(mcController) мы пихнем экземпляр на самый верх отображения. А вот фигушки... Я долго ломал голову, может где моя ошибка, почему не лезут они в верхушку.
Решением оказалось только это
addChild(mcController);
mcController.addChild(mcController.getInputClip())
Кроме как странностью это объяснить не удалось. Или я чего то не знаю?
Ниже привожу схему, как я рассуждаю, если непонятно
Было :
cont ->mc1,mc2,....mcN
Процесс:
new MCController(mcN) { addChild(mcN) }
Внутренний процесс в это время, как я думаю, должен быть : cont.removeChild(mcN) and mcController addChild(mcN) then.
Процесс 2:
cont.addChild(mcController);
Итог как я понимаю : в cont имеется теперь не mc1,...mcN, а mcController1, ... mcControllerN
Соотвественно делая cont.addChild(mcControllerN) - я должен выдвинуть его на верхний уровень. Но как сказано выше, так не получается :)
Для справки, если это может быть важно cont со своими вложенными мувиками изначально библиотечный символ и подтягивается по средствам swc
Рассказываю по порядку.
Имеем : контейнер(cont) в котором находятся еще N мувиков.(mcX) Имеем управляющий класс в который передается один из этих мувиков. И так
for(var i:int = 0; i < 5; i++)
var mcController:MCController = new MCController(cont.mc["" + i]);
addChild(mcController);
/*(Constructor)... public fuction MCController(mc:MovieClip) { addChild(mc) } */
Что мы по сути сделали. Создали некий класс приемник мувклипа, добавили ( уже добавленный в cont ) еще раз этот мувиклип в дисплей лист класса, но уже другого контейнера ( MCController ) , а затем добавили этот контейнер так же в список отображения. Если рассуждать прямо и логично, то написав теперь в любом месте кода addChild(mcController) мы пихнем экземпляр на самый верх отображения. А вот фигушки... Я долго ломал голову, может где моя ошибка, почему не лезут они в верхушку.
Решением оказалось только это
addChild(mcController);
mcController.addChild(mcController.getInputClip())
Кроме как странностью это объяснить не удалось. Или я чего то не знаю?
Ниже привожу схему, как я рассуждаю, если непонятно
Было :
cont ->mc1,mc2,....mcN
Процесс:
new MCController(mcN) { addChild(mcN) }
Внутренний процесс в это время, как я думаю, должен быть : cont.removeChild(mcN) and mcController addChild(mcN) then.
Процесс 2:
cont.addChild(mcController);
Итог как я понимаю : в cont имеется теперь не mc1,...mcN, а mcController1, ... mcControllerN
Соотвественно делая cont.addChild(mcControllerN) - я должен выдвинуть его на верхний уровень. Но как сказано выше, так не получается :)
Для справки, если это может быть важно cont со своими вложенными мувиками изначально библиотечный символ и подтягивается по средствам swc