Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Почему getDefinitionByName "не видит" классов из swc? (http://www.flasher.ru/forum/showthread.php?t=145754)

AlliAS 18.10.2010 21:36

Почему getDefinitionByName "не видит" классов из swc?
 
Здравствуйте. Мне нужно получать объект по имени класса из swc файла, как это сделать учитывая что getDefinitionByName возвращает ошибку о том что переменная не определена (new + тоже_самое_имя прекрасно работает)? Почему не получает класс по имени из swc?

BlooDHounD 18.10.2010 21:44

это значит что класс не включён в конечный swf.

AlliAS 18.10.2010 22:20

хм, при компиляции то он включаеться, тоесть если открыть swc тем же FlashDevolop'ом класс там есть (он графический)

vinch 18.10.2010 23:46

Нужно этот класс где-то упомянуть в коде, или, если не ошибаюсь, можно поставить Always Compile или как-то так в FD для .swc файла.

dimarik 19.10.2010 01:10

Цитата:

Сообщение от vinch (Сообщение 943648)
Нужно этот класс где-то упомянуть в коде

Браво! Просто включите имя класса где-нибудь в проекте. Прям в любом месте.

Цитата:

или, если не ошибаюсь, можно поставить Always Compile или как-то так в FD для .swc файла.
А это уже отсебятина.

Котяра 19.10.2010 01:51

ничего не отсебятина - подтверждаю - можно. Только это называется Included Library

vinch 19.10.2010 01:52

Цитата:

Браво! Просто включите имя класса где-нибудь в проекте. Прям в любом месте.
Помогает. Стандартно подключаются только те классы, на которые есть отсылка в коде.
Цитата:

А это уже отсебятина.
Ну я ж написал, "как-то так" :)
На самом деле - правый клик по файлу - Options - Included library (include completely). Присоединятся все классы и getDefinitionByName заработает независимо от наличия ссылки в коде.

Котяра 19.10.2010 01:54

Цитата:

Сообщение от vinch (Сообщение 943675)
Помогает. Стандартно подключаются только те классы, на которые есть отсылка в коде.

Только new

AlliAS 19.10.2010 02:00

Цитата:

Сообщение от dimarik (Сообщение 943665)
Браво! Просто включите имя класса где-нибудь в проекте. Прям в любом месте.

Спасибо, но это увы делу не поможет, эта функция мне как раз нужна для динамического получаения класса по его имени из xml, тоесть предполагаеться что таких классов очень много, и если придеться заранее все их объявить в коде то теряеться почти все удобство функции

vinch 19.10.2010 02:02

AlliAS, Вы ведь в FD работаете? Тогда поставьте Options - Included library (include completely).

Цитата:

Только new
Да нет, по-моему.

ReferenceError: Error #1065: Переменная ClassX не определена:
Код AS3:

public function Main():void 
{
        getDefinitionByName("ClassX");
}

А так - работает:
Код AS3:

public function Main():void 
{
        ClassX;
        getDefinitionByName("ClassX");
}



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

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