Показать сообщение отдельно
Старый 19.04.2010, 19:32
tofflife вне форума Посмотреть профиль Отправить личное сообщение для tofflife Найти все сообщения от tofflife
  № 1  
Ответить с цитированием
tofflife

Регистрация: Jul 2009
Сообщений: 95
По умолчанию Стейты у SimpleButton.

Здравствуйте. Объясните пожалуйста мне, тупице, следующие вопросы.

1. Предположим, у меня имеется некий SimpleButton, зашитый в FLA и с линкованный через Linkage.

Вот как я их создаю(упрощенно):

Код AS3:
var newButton:SimpleButton = new MyButton();//Создаемся
var copyButton:SimpleButton = new (Object(newButton)).constructor();//Клонируем.
Тут все понятненько, все стейты кнопки были заданы в редакторе и сам класс MyButton разруливает расстановку стейтов при пересоздании класса.

2. Я наткнулся на то, что мне нужно загружать кнопки извне. Я стал загружать спрайты и записывайть их в стейты, вот так:

Код AS3:
myButton.onUpState = loaderInfo.loader.content;
все ок, все шуршит и пашит. Но потом мне эти кнопке также понадобилось клонировать. К сожалению, первый вариант уже не катит, поскольку во втором случае уже используется не MyButton, описанный в FLA, а базовый SimpleButton и он не знает изначально, что у него внутри.

Поставил вот такой костыль:

copy.upState = new (Object(myButton.upState)).constructor()

Гы. Работает. Но первый вариант перестал работать с этой строчкой.
Стал рыться в отладчике. Может ещё что-нибудь сетать надо? Смотрю, у copy.upState есть свойство parent, равное самому myButton(т.е. хозяин у контрола остался тот же)

3. Я фшоке. Какие образом просетать в это поле(parent), если оно read-only, да ещё плюс к тому SimpleButton не является контейнером!

Что вы думаете по всему вышеописанному.