![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Mar 2002
Адрес: https://webhamster.ru
Сообщений: 107
|
Мда, видимо никто не знает. Ладно, примем это за очередной глюк флеша.
|
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
|
Цитата:
|
|
|||||
|
Регистрация: Mar 2002
Адрес: https://webhamster.ru
Сообщений: 107
|
Ок, ща я обрежу пример по самое не балуйся, чтоб оставить тока интересующую функциональность.
|
|
|||||
|
Регистрация: Mar 2002
Адрес: https://webhamster.ru
Сообщений: 107
|
Во, сделал по минимому.
Инструкции. 1. Открываем *.fla, запускаем его (Ctrl+Enter). 2. Видим, что все ячейки одинакового размера, закрываем swf-ник. 3. Заходим в клип LBEditor, выбираем слой ActionScript, кадр 1. 4. Комментируем все, что находится ниже строки "// Задаются рандомные размеры ячеек". 5. Переходим в кадр 2 и РАСкомментируем все, что находится ниже строки "// Задаются рандомные размеры ячеек". 6. Запускаем (Ctrl+Enter). 7. Видим, что ячейки стали разного размера. Таким образом имеем - кода код изменения свойства находится в кадре 1, мы не видим результат (ячейки остаются одинакового размера) - когда тот же код находится в кадре 2, мы видим, что свойство изменилось (ячейки становятся разного размера) Вопрос - почему так происходит? Последний раз редактировалось xintrea; 02.08.2006 в 17:54. |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
|
Ну, так. В LBEditor в первом кадре напишите trace ("size") перед запуском изменения размера, а в LogicTab trace ("cell") после создания все ячеек. Теперь запустите и посмотрите на порядок полученных трейсов.
Вы получите Теперь понятно? Сначала выполняется весь код который аттачит таблицу, а уже потом код внутри приаттаченной таблицы. Уберите весь код который отвечает за размеры, а внутри LogicTab код замените на |
|
|||||
|
Регистрация: Mar 2002
Адрес: https://webhamster.ru
Сообщений: 107
|
Хм, почему тогда в примере, который вы давали, если сразу после attachMovie ("libTable"... добавить код
for (var j = 0; j < o.r; j++)
for (var i = 0; i < o.c; i++)
{
id = o.c * j + i;
set("mcTable"+this.tableCount+".mcCell"+id+"._xscale",random(100)+100);
set("mcTable"+this.tableCount+".mcCell"+id+"._yscale",random(100)+100);
}
Ведь у вас приаттачиваемый объект - libTable - создаёт таблицу динамически (как и у меня) с помощью кода внутри символа таблицы. |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
|
Потому что я создал класс Table. И когда я аттачу на сцену из библиотеки символом, он становится экземпляром этого класса. А описание класса между директивами #initclip и #endinitclip позволяет инициализировать экземпляр до его появления на сцене.
|
|
|||||
|
Регистрация: Mar 2002
Адрес: https://webhamster.ru
Сообщений: 107
|
Ага, теперь понял.
Конструкцию ячейки вы делаете так же как написано в этой статье http://www.vmstudio.com/materials.php?component. Единственное чему не внял, так это почему в помощи FlashMX2004 нет описания директив #initclip #endinitclip. Во всяком случае, поиск не находит. |
![]() |
![]() |
Часовой пояс GMT +4, время: 10:10. |
|
|
« Предыдущая тема | Следующая тема » |
|
|