Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   из текста в тип (метод) или типа того (http://www.flasher.ru/forum/showthread.php?t=140396)

DenverZ 28.05.2010 02:58

из текста в тип (метод) или типа того
 
Здравствуйте,
вопрос такой возник
получаю из XML данные предположим, что в переменной text есть некоторая строка

var text:String = "stroka";

как можно ее использовать в качестве метода и соответственно как тип, типа

var tmp:text = new text();

что-то вроде этого :-)

нужно это, что бы подгружать символы созданные во флеш динамически в AC т.е. берем настройки из XML файла, и грузим что надо

спасибо

wvxvw 28.05.2010 03:16

getDefinitionByName() ?

DenverZ 28.05.2010 03:23

чет не получается

Код AS3:

var mc:Class = getDefinitionByName(xmlData.enemy[0].name) as Class;

Код:

ReferenceError: Error #1065: Переменная Enemy_1_1 не определена.
        at global/flash.utils::getDefinitionByName()
        at classes::Enemy/addEnemy()
        at classes::Enemy/createEnemy()
        at Main/enterFrame()

Enemy_1_1 - это непосредственно класс присвоенный символу, который соответственно берется из XML (текст)

Добавлено через 12 минут
так помоему дело в том, что символы, а соответственно их классы принадлежат к главному классу? т.е. это я пытаюсь вызвать все из другого класса...

как быть в таком случае?

Добавлено через 35 минут
вообщем вот так:
Код AS3:

var classRef:Class = getDefinitionByName("Enemy_1_1") as Class;

выдает ошибку:
Код:

ReferenceError: Error #1065: Переменная Enemy_1_1 не определена.
        at global/flash.utils::getDefinitionByName()
        at classes::Enemy/addEnemy()
        at classes::Enemy/createEnemy()
        at Main/enterFrame()

а вот так:
Код AS3:

var mc:Enemy_1_1 = new Enemy_1_1();
trace(mc);

все ок
[object Enemy_1_1]

где грабли? :-)

Добавлено через 50 минут
Разобрался
надо у каждого символа в библиотеке поставить экспорт в кадр 1 (я там галочку убирал, хз зачем) и тогда все работает :-)

2wvxvw спасибо за наводку :-)

wvxvw 28.05.2010 04:41

Незачто, и еще, есть два важных момента:
- имя класса должно быть полным (т.е. если класс в пакете "foo", то нужно именно "foo.MyClass") использовать.
- нужно чтобы были ссылки на используемые классы (иначе они не скомпилируются), т.е. закликнув галку, вы тем самым сказали компилятору, что класс из библиотеки нужно скомпилировать, то же самое произошло бы, если бы вы его вытащили на сцену, например.

Да, и, пожалуйста, оформляйте код используя соответствующии BBcod'ы.

DenverZ 28.05.2010 06:21

оки спасибо учту


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

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