Форум 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)
-   -   AS2->3 migration: attachMovie (http://www.flasher.ru/forum/showthread.php?t=87231)

MyXus 01.11.2006 11:38

AS2->3 migration: attachMovie
 
Упоминания проблемы в инете есть. Вот ту даже закопали одного товарища ветераны.
http://www.flasher.ru/forum/archive/...p/t-76015.html

В хелпах рекоммендуется использовать следующую конструкцию:
Цитата:

In the library, right click on the symbol , click on Linkage. There select
the checkbox Export for ActionScript. Give a name (gf) in the class field,
flash will autogenerate a class for you with that name.
var myGf = new gf()
this.addChild(myGf)
this is equivalent to attachMovie
Меня такой подход вообще не устраивает. Т.к. раньше я мог юзать такую конструкцию
Код:

this.attachMovie(link[i], 'name'+i, depth);
А теперь как такую конструкцию реализовывать, если для каждого линка создается свой класс, на который, если его не описать ручками, еще и ругается компилер флекс-билдера - нет понятия.
:-(

MyXus 01.11.2006 13:17

__etc, только ты можешь меня спасти -)

miramax 01.11.2006 13:20

getDefinitionByName() )))
Позволяет обратиться к классу по имени из переменной

etc 01.11.2006 13:20

Ммм, у тебя в либе есть кучу linkN, где N от 0 до бесконечности, что-ли?
miramax меня определил =)
Тем не менее, придётся создавать много классов.
Или, как вариант решения — создать мувик контейнер, запихать туда кучу твоих link с заданными именами, потом навесить динамический класс на этот контейнер и дергать из него линки.
Что-то вроде var link:MovieClip = containerClassInstance['link'+i] as MovieClip; ну и addChild его.
Не пробовал, может и прокатит.

MyXus 01.11.2006 13:49

Цитата:

Сообщение от miramax
getDefinitionByName() )))
Позволяет обратиться к классу по имени из переменной

Код:

var test:Class = getDefinitionByName("pic1") as Class;
this.addChild(test as Sprite);

не работает ("Parameter child must be non-null", то бишь приведение к типу не пашет). ну и
Код:

var test:Sprite = new pic1() as Sprite;
this.addChild(test);

тоже не пашет (с той же ошибкой).

MyXus 01.11.2006 13:49

Цитата:

Сообщение от __etc
создать мувик контейнер, запихать туда кучу твоих link с заданными именами, потом навесить динамический класс на этот контейнер и дергать из него линки.

Понял, будет запасным вариантом, занкс -)

etc 01.11.2006 14:15

Цитата:

Сообщение от MyXus
Код:

var test:Class = getDefinitionByName("pic1") as Class;
this.addChild(test as Sprite);

не работает ("Parameter child must be non-null", то бишь приведение к типу не пашет).

Правильно, должен быть класс pic1. Кстати, могбы сразу var test:Sprite = getDefinitionByName('pic1') as Sprite. Ну опять же, при наличии класса pic1.

MyXus 01.11.2006 14:16

Цитата:

Сообщение от __etc
Правильно, должен быть класс pic1. Кстати, могбы сразу var test:Sprite = getDefinitionByName('pic1') as Sprite. Ну опять же, при наличии класса pic1.

Так я описывал этот вариант постом выше. Не катит. А класс pic1 существует (auto-generated), это только флекс об этом не знает, а флеш - знает.

etc 01.11.2006 14:27

Здравствуйте, приехали! Ты под Flex или под Flash 9 пишешь-то?

MyXus 01.11.2006 14:56

ну я сижу в флекс-билдере под эклипс, а запускаю во флеше -)
доступ к библиотеке нужен, да и наглядность..


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

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