![]() |
|
||||||||||
|
|
|
|||||
|
Описание игрового мира храню в базе данных. Есть скрипт PHP отдающий его в XML вида
<SectorMain>
<Star id="1">
<id>1</id>
<sub_id>0</sub_id>
<s_point_x>500</s_point_x>
<s_point_y>300</s_point_y>
<name>17</name>
<img_path>img/graphic</img_path>
<img_name>rock1</img_name>
<img_ext>png</img_ext>
</Star>
<Planet id="1">
<id>2</id>
<sub_id>1</sub_id>
<center_x>25</center_x>
.... и т.п....
</Planet>
</SectorMain>
protected function CreateFromXML(Data:XML):void { // Создание сектора из XML for each (var Node:XML in Data.*) { if(Node.nodeKind()=="element") { // var s:Star = new Star(); // var p:Planet = new Planet(); trace(Node.name()); var ClassReference:Class = getDefinitionByName(Node.name()) as Class; var Instance:Object = new ClassReference(); } } } F:\VN Flash\Src\Vn.fla: Star ReferenceError: Error #1065: Variable Star is not defined. Полазив по форуму нашел ответ в том, что классы должны где-то упоминаться для того, чтобы они были импортированы в swf (Все ответы для FD, у меня CS3). Но и даже с раскоментаренными первыми двумя строчками все равно не работает. Подскажите, как решить проблему? |
|
|||||
|
Banned
Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Цитата:
проблема в этом: В ствойстве Data нет переменной звездочки |
|
|||||
|
Цитата:
А звездочка в это обращение к узлам XML-дерева. С ней все в порядке. Если закоментарить создание объектов по имени - никто ни на что не ругается. |
|
|||||
|
Star входит в package. Но даже если добавить в начало import Vn.Star; ошибка остается
Добавлено через 34 минуты Цитата:
Вот это сработало, спасибо. В итоге работает только в таком виде: protected function CreateFromXML(Data:XML):void { // Создание сектора из XML for each (var Node:XML in Data.*) { if(Node.nodeKind()=="element") { Star; Planet; trace(Node.name()); var ClassReference:Class = getDefinitionByName("Vn."+Node.name()) as Class; var Instance:Object = new ClassReference(); } } } |
|
|||||
|
Попробуйте получить имя класса с учетом его расположения.
То есть например вместо написать |
|
|||||
|
Banned
Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Цитата:
Это смахивает на проблему, которая была однажды в моем коде http://www.flasher.ru/forum/showthread.php?t=156321 |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Названия пакетов, переменных (возможно, кроме ClassReference), методов принято писать с маленькой буквы. С большой буквы пишутся названия классов. Ознакомьтесь с конвенциями по оформлению кода http://opensource.adobe.com/wiki/dis...ng+Conventions.
Цитата:
Последний раз редактировалось udaaff; 24.06.2011 в 21:35. |
|
|||||
|
Цитата:
Для new же не нужно указывать полные имена. А для getDefinition получается почему-то нужно... |
|
|||||
|
ну вообще то в случае с new полный путь к классу в импорте прописан
|
![]() |
![]() |
Часовой пояс GMT +4, время: 14:52. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|