Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Добавить MovieClip в MovieClip (http://www.flasher.ru/forum/showthread.php?t=202765)

art_maestro 08.08.2013 17:45

Добавить MovieClip в MovieClip
 
Здравствйте

Не могу понять, казалось бы простая вещь, не раз это делал, но почему то не получается.

Есть два мувика, один мувик нужно добавить в другой.
Я делаю таким образом.

Код AS3:

public class CDoc extends MovieClip
{
 
public  var _mcQuest:MovieClip = new MovieClip();
public  var _mcImgList:MovieClip = new MovieClip();
 
 
private function onAddedToStage(e:Event):void
{                                       
  _mcQuest.addChild(_mcImgList);
  stage.addChild(_mcQuest);
 
stage.addEventListener(Event.ENTER_FRAME, scrollManager, false, 0, true);
}
 
public function scrollManager(e:Event):void
{               
        stage._mcQuest._mcImgList.y +=  (goY - stage._mcQuest._mcImgList.y) / 5;
 
}
 
}

onAddedToStage - вызывается в данном классе, весь код не стал писать.
Пытаюсь обратиться к объекту в scrollManager, то флеш _mcImgList не видит и пишет undefined. Подскажите пожалуйста, что я делаю не так. Как исправить эту ошибку.

Котейка 08.08.2013 18:09

При программном добавлении одного клипа в другой одноименное с ним свойство не создается автоматически. Как одним из вариантов для доступа ко вложенному клипу вы можете воспользоваться например именованием.
Код AS1/AS2:

_mcQuest.addChild(_mcImgList).name="imgList";
//
_mcQuest.getChildByName("imgList").y += 15;


Bletraut 08.08.2013 22:06

Эмм... А разве вообще можно на stage добавлять?

Котейка 08.08.2013 22:55

Bletraut, а почему бы и нет? Stage наследник DisplayObjectContainer :)

Wolsh 08.08.2013 23:23

А еще в любой Ваш класс можно что-нибудь добавлять. А почему нет? Они же наследники DOC!

Stage вам не какой-нибудь экземплярчик. Он Бог-Отец. Не надо засорять его выкидышами из вашего приложения. Держите свое при себе.

Котейка 08.08.2013 23:41

Wolsh, вы не правильно расценили мое сообщение. Я конечно же ниразу не имел ввиду, что на stage нужно класть детей. Ответил лишь на вопрос, о том возможно ли это вообще. Ну а поскольку топик не об этом, то не стал заострять внимания на том хорошая это практика или плохая :)

art_maestro 09.08.2013 01:02

Цитата:

Сообщение от Котейка (Сообщение 1143032)
При программном добавлении одного клипа в другой одноименное с ним свойство не создается автоматически. Как одним из вариантов для доступа ко вложенному клипу вы можете воспользоваться например именованием.
Код AS1/AS2:

_mcQuest.addChild(_mcImgList).name="imgList";
//
_mcQuest.getChildByName("imgList").y += 15;



Точно! как то упустил этот момент. Попробую, отпишусь. Спасибо огромное!

Добавлено через 1 минуту
Цитата:

Сообщение от Wolsh (Сообщение 1143064)
А еще в любой Ваш класс можно что-нибудь добавлять. А почему нет? Они же наследники DOC!

Stage вам не какой-нибудь экземплярчик. Он Бог-Отец. Не надо засорять его выкидышами из вашего приложения. Держите свое при себе.


Спасибо за совет, я обязательно это учту!


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

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