![]() |
Стейты у SimpleButton.
Здравствуйте. Объясните пожалуйста мне, тупице, следующие вопросы.
1. Предположим, у меня имеется некий SimpleButton, зашитый в FLA и с линкованный через Linkage. Вот как я их создаю(упрощенно): Код AS3:
2. Я наткнулся на то, что мне нужно загружать кнопки извне. Я стал загружать спрайты и записывайть их в стейты, вот так: Код AS3:
Поставил вот такой костыль: copy.upState = new (Object(myButton.upState)).constructor() Гы. Работает. Но первый вариант перестал работать с этой строчкой. Стал рыться в отладчике. Может ещё что-нибудь сетать надо? Смотрю, у copy.upState есть свойство parent, равное самому myButton(т.е. хозяин у контрола остался тот же) 3. Я фшоке. Какие образом просетать в это поле(parent), если оно read-only, да ещё плюс к тому SimpleButton не является контейнером! Что вы думаете по всему вышеописанному. |
Я думаю, что вы занимаетесь не тем, ибо прототипирование - это пережитки AS1, а в AS3 все визуальные объекты создаются по-нормальному, а не клонированием. Именно потому, что попытка клонирования вызывает проблемы, которые вы здесь описываете.
|
у меня нет прототипирования. у меня создаются все объекты через рефлексию вообще через getDefinitionByName.
Вот пример описания контрола: <BankChestStrokeEvidence type="com.awem.visual.control.standart.impl.Image" owner="BankChest" resource="BankBandannaStrokeRes" x="25" y="3"/> |
Код AS3:
Код AS3:
Всю визуальную составляющую так не склонируете. getDefinition и далее по рефлексии. |
К вашему сведению - getDefinitionByName и new (Object(newButton)).constructor()
работают по одному принципу. Второй пример работает гораздо быстрее, поскольку отсуствуют затраты на получение полного имени ресурса. "Всю визуальную составляющую так не склонируете." Ошибаетесь. Класс полностью воссоздает начальное состояние картинки. Хотя это я тут немного неправильно написал. Это, скорее, не клонирование текущего состояния объекта, а клонирование его начального состояния, описанного в FLA. Добавлено через 4 минуты var copyButton:SimpleButton = SimpleButton( new Object(newButton).constructor ) Ну и на кой ляд мне делать лишнее преобразование к SimpleButton, когда я могу вызвать напрямую конструктор, возвращающий SimpleButton?! |
Ого, конструкторы уже возвращают что-то.. )
|
Надо тестить, Тигра. Вдруг что вернут.
2 tofflife Фраза "Всю визуальную ....". Означала, что кроме шейпов, созданных в authority-mode, в DisplayObject/DisplayObjectContainer могут быть и детки по-серьезнее. Добавлено через 1 минуту Цитата:
|
Код AS3:
null [class TestClass] Это не функция/метод и не класс. Судя по всему, это геттер, и что-то он возвращает. Похоже был не прав по поводу того, что конструктор ничего не возвращает... |
Код AS3:
|
Ну, конструктор по идее ничего возвращать и не должен - не это у него предназначение. Конструктор определяется как метод, в общем то говоря - а я вверху показал что это геттер. Значит, по сути дела конструктор класса и object.constructor это разные вещи. И вот object.constuctor что-то возвращает - судя по всему, экземпляр класса или сам класс
Код AS3:
Но я почти уверен, что автор говоря о конструкторе имел ввиду именно тот самый конструктор, что метод. |
| Часовой пояс GMT +4, время: 22:02. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.