Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Формирование уровня игры с помощью XML (http://www.flasher.ru/forum/showthread.php?t=209196)

mamtn 19.10.2014 15:11

Формирование уровня игры с помощью XML
 
Хотим с детьми сделать игру, где уровни будут формироваться из платформ с помощью XML.
Пока не получается. Помогите, кто может!

Код AS3:

//Загрузка одного блока из библиотеки на основе данных файла XML
//Этих блоков должно загрузиться много - из них создается уровень
// переменная block класса  XML(данные для нее пока созданы здесь,в среде Flash...
// ...позже будут загружаться из реального файла XML)
//в библиотеке есть ФР класса Platform. Его надо загрузить
var block:XML=
        <block>
                <kX>340</kX>
                <kY>210</kY>
                <imyaKl>Platform</imyaKl>
        </block>
        // переменные, в которые помещаются данные из block
var obBl:Object=new Object();
obBl.blX=block.kX;
obBl.blY=block.kY;
obBl.blN=block.imyaKl;
// Загрузка  блока из библиотеки, если знаем, что грузить Platform
var bl:MovieClip=new Platform();
bl.x=obBl.blX;
bl.y=obBl.blY;
addChild(bl);
//        А если не знаем, а  хотим взять из obBl.blN , как это сделать?
// Так: var bl:MovieClip=new obBl.blN();  неправильно


cleptoman 19.10.2014 16:12

ну, у вас задача получить по строковому представлению класса сам класс. совет:
registerClassAlias
getClassByAlias
http://help.adobe.com/ru_RU/FlashPla...t/package.html

из личного опыта - когда-то давно сам конфигурил в ХМЛ, но переполз на JSON + Vanilla - крайне удобственная весчь

Добавлено через 2 минуты
п.с. - подумайте над темой вменяемости именования полей

Babylon 19.10.2014 16:16

Не очень хороший стиль проектирование XML.
Обычно мандаторные свойства - это атрибуты ноды, а контейнеры это сами ноды.

Gerbert 19.10.2014 16:17

Цитата:

но переполз на JSON + Vanilla - крайне удобственная весчь
Вас не затруднит в двух словах сказать, что такое vanila и дать на неё ссылку?

cleptoman 19.10.2014 16:25

не затруднит:
https://github.com/jonnyreeves/as3-vanilla
суть - из нетипизированного объекта получить быстренько типизированный
пример:
JSON:
Код:

{
"name" : "Some Name",
"age": 21
}

некий класс данных
Код AS3:

package{
public functio SomeDataClass{
public var name:String;
public var age:uint;
}

использование:
Код AS3:

var jsonString:String = someJSONStringWithData;
var untypedObject:Object = JSON.decode(jsonString);
var typedData:SomeDataClass = extract(untypedObject,SomeDataClass );
trace(typedData.name,typedData.age);
}

Добавлено через 31 секунду
сори за опечатки - думаю разберетесь

Gerbert 19.10.2014 16:30

cleptoman, Спасибо!

cleptoman 19.10.2014 16:37

кстати, пример с простыми типами, наверно, не раскрывает всей полезности: ванилла отлично кушает и сложные типы и векторы

Gerbert 19.10.2014 16:47

Цитата:

кстати, пример с простыми типами, наверно, не раскрывает всей полезности: ванилла отлично кушает и сложные типы и векторы
А производительность кто-нибудь замерял по отношению к чему-либо?

cleptoman 19.10.2014 16:58

например к чему?
к ручному парсингу?..вероятно , и скорее всего медленнее ибо ванилла на медленном describeType работает.
но!..обычно такого рода данные парсятся на стадии prepare и производительность (если скорсть имеется ввиду) там не играет важной роли, а удобство налицо

mamtn 22.10.2014 05:48

Друзья, большое спасибо! Всем удачи!


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

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