Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Корректно отобразить класс на сцене (http://www.flasher.ru/forum/showthread.php?t=117565)

ttu 30.10.2008 15:44

Корректно отобразить класс на сцене
 
Пришлось для одной задачи вернуться с AS 3.0 на AS 2.0, и начался тупняк))

Есть класс AppController и AppElement (оба extends MovieClip, мувик класса AppController изначально размещен на сцене)

AppController внутри одного из своих методов создает AppElement, у которого есть контсруктор, принимающий параметр, т.е. что-то в таком духе:
Код:

class AppController
{
  ...
  public function _Method()
  {
      appEl = new AppElement("parameter");
  }
  ...
}

Теперь еще хорошо бы вытащить appEl на сцену - создаю в библиотеке .fla файла пустой мувик AppElementLib, которому в соотвествие ставлю класс AppElement.
И в метод _Method() дописываю еще строчку:
Код:

this.attachMovie("AppElementLib" , "AppElementLib_mc" , <глубина>);
В итоге получается, что создается 2 объекта AppElement- как этого избежать?
Если, допустим, убрать строчку
Код:

appEl = new AppElement("parameter");
, то как тогда передать параметр в конструктор?..

Division 30.10.2008 15:53

Цитата:

как тогда передать параметр в конструктор?
Насколько мне известно, никак. Можно в attachMovie написать что-то вроде
Код:

this.attachMovie("AppElementLib" , "AppElementLib_mc" , <глубина>,{<свойство>:<значение>});
Но это конечно не выход.
Я бы делал что-то вроде
Код:

var tmp = this.attachMovie("AppElementLib" , "AppElementLib_mc" , <глубина>);
tmp.Init("param");


ttu 30.10.2008 15:58

Ага, я в принципе так и делаю, просто думал, можно ли как-то без подобных исхищрений))


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

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