Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 17.02.2011, 10:40
DanQuimby вне форума Посмотреть профиль Отправить личное сообщение для DanQuimby Найти все сообщения от DanQuimby
  № 1  
Ответить с цитированием
DanQuimby
 
Аватар для DanQuimby

Регистрация: Feb 2007
Сообщений: 109
Отправить сообщение для DanQuimby с помощью ICQ
По умолчанию парсинг game_map из xml

Доброе утро, у меня есть вопрос, как лучше представлять игровую карту
которая находиться в xml файле.
У меня на данный момент сделано так
Код AS3:
<?xml version="1.0" encoding="utf-8" ?>
<!-- потом сюда закину типы щас просто для теста с 1 обьектом  -->
<data>
<map>
11111111111111
10000000000001
10000111000001
10011011000001
10000011000001
10000011000001
10000011000001
10000011000001
10000000000001
11111111111111
</map>
</data>
то есть каждая <map> это String
но я так и не понял, как можно перебрать каждый символ в стринге.
Или как мне сделать, что бы на выходе я получал Array<uint>

разборка ...

Код AS3:
private function _loaded_xml(e:Event):void
	{
		var _xml:XML = new XML(_loader.data);
		var _uNum_Total_maps:uint = _xml.number_of_map;
		var _result:String;
		var _uCount_maps:uint = 1;
		_xml.ignoreWhitespace = true;
 
		for each (var maps:XML in _xml.map) {
			if (_uCount_maps == _num_maps) {// найдена тот лабиринт который нужен
 
						_result = maps.toString();
						trace("map №" + _uCount_maps + "\n" + maps.toString());
			}
			_uCount_maps++;
		}
	}
__________________
Ищу человечка(ов) для участия в совместных проектах
vkontakte.ru я тут

Старый 17.02.2011, 11:21
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 2  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
А зачем XML для таких вещей? У вас каждая строчка - 14 байт, а если бы вы записывали это как числа, то можно было бы по 2 байта на строчку, еще бы 2 бита оставалось
Ну а конкретно для такой задачи - что-то в таком духе
Код AS3:
package  
{
	import flash.display.Sprite;
 
	/**
	 * ...
	 * @author wvxvw
	 */
	public class TestParseMap extends Sprite
	{
 
		public function TestParseMap() 
		{
			super();
			var map:String = 
<![CDATA[11111111111111
10000000000001
10000111000001
10011011000001
10000011000001
10000011000001
10000011000001
10000011000001
10000000000001
11111111111111]]>.toString();
			this.parseMap(map, this.createOnes, this.createZeros);
		}
 
		private function parseMap(input:String, 
			createOnes:Function /* int->int->void */, 
			createZeros:Function /* int->int->void */):void
		{
			var current:int;
			var currentChar:String;
			var inputLength:int = input.length;
			var rows:int;
			var colums:int;
 
			while (current < inputLength)
			{
				currentChar = input.charAt(current);
				trace(currentChar.charCodeAt());
				switch (currentChar)
				{
					case "1": createOnes(current - colums, rows);
						break;
					case "0": createZeros(current - colums, rows);
						break;
					case "\r": 
						rows++;
						colums = current + 1;
						break;
					default: colums++;
				}
				current++;
			}
		}
 
		private function createOnes(collums:int, rows:int):void
		{
			super.graphics.beginFill(0xFF);
			super.graphics.drawRect(collums * 20, rows * 20, 20, 20);
			super.graphics.endFill();
		}
 
		private function createZeros(collums:int, rows:int):void
		{
			super.graphics.beginFill(0xFF00);
			super.graphics.drawCircle(collums * 20 + 10, rows * 20 + 10, 10);
			super.graphics.endFill();
		}
	}
}
__________________
Hell is the possibility of sanity

Старый 17.02.2011, 11:46
DanQuimby вне форума Посмотреть профиль Отправить личное сообщение для DanQuimby Найти все сообщения от DanQuimby
  № 3  
Ответить с цитированием
DanQuimby
 
Аватар для DanQuimby

Регистрация: Feb 2007
Сообщений: 109
Отправить сообщение для DanQuimby с помощью ICQ
это было бы лучше , если бы у меня было только 2 обьекта
а их будет минимум 10
и как парсер сделать ? мона поподробней
__________________
Ищу человечка(ов) для участия в совместных проектах
vkontakte.ru я тут

Старый 17.02.2011, 12:14
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 4  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Ну вы даете, вам же разжевали подробней некуда. Их и будет максимум 10 с такой организацией :о).

Добавлено через 2 минуты
Хотя, погорячился, еще буквы есть и спецсимволы
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 17.02.2011, 12:19
DanQuimby вне форума Посмотреть профиль Отправить личное сообщение для DanQuimby Найти все сообщения от DanQuimby
  № 5  
Ответить с цитированием
DanQuimby
 
Аватар для DanQuimby

Регистрация: Feb 2007
Сообщений: 109
Отправить сообщение для DanQuimby с помощью ICQ
Цитата:
Сообщение от GBee Посмотреть сообщение
Ну вы даете, вам же разжевали подробней некуда. Их и будет максимум 10 с такой организацией :о).

Добавлено через 2 минуты
Хотя, погорячился, еще буквы есть и спецсимволы
ну хорошо , а как пропарсить мне этот массив , если допустим этот путь истины.
__________________
Ищу человечка(ов) для участия в совместных проектах
vkontakte.ru я тут

Старый 17.02.2011, 12:48
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 6  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Цитата:
ну хорошо , а как пропарсить мне этот массив , если допустим этот путь истины.
wvxvw все написал, либо я не понимаю что вы хотите.


2wvxvw, а зачем вы передаете функции как параметры?
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 17.02.2011, 14:02
DanQuimby вне форума Посмотреть профиль Отправить личное сообщение для DanQuimby Найти все сообщения от DanQuimby
  № 7  
Ответить с цитированием
DanQuimby
 
Аватар для DanQuimby

Регистрация: Feb 2007
Сообщений: 109
Отправить сообщение для DanQuimby с помощью ICQ
Цитата:
Сообщение от GBee Посмотреть сообщение
wvxvw все написал, либо я не понимаю что вы хотите.


2wvxvw, а зачем вы передаете функции как параметры?
ой ступанул )) вниз не пролистал ... я так делаю , потому что не знаю , как лучше
сделать когда все загружено. про другие методы просто не слышал.

Добавлено через 11 минут
wvxvw все спасибо, вопросов больше по этой теме нет
__________________
Ищу человечка(ов) для участия в совместных проектах
vkontakte.ru я тут

Старый 17.02.2011, 21:20
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 8  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
GBee: Мне так удобно Хотя, вцелом, ето не совсем тру путь в AS3, т.как по дороге теряется типизация. В том же HaXe она бы не потерялась.

DanQuimby: Если значений будет больше чем 1 и 0, то свитч логично заменить каким-нибудь мапом / массивом колбеков. Т.е. получится что-то в роде:

Код AS3:
function parse(data:String, callbacks:Callbacks):void
{
    var callback:Function;
    while (...)
    {
        callback = callbacks.get(currentChar);
        callback(x, y);
    }
}
__________________
Hell is the possibility of sanity

Старый 19.02.2011, 19:30
DanQuimby вне форума Посмотреть профиль Отправить личное сообщение для DanQuimby Найти все сообщения от DanQuimby
  № 9  
Ответить с цитированием
DanQuimby
 
Аватар для DanQuimby

Регистрация: Feb 2007
Сообщений: 109
Отправить сообщение для DanQuimby с помощью ICQ
Цитата:
Сообщение от wvxvw Посмотреть сообщение
GBee: Мне так удобно Хотя, вцелом, ето не совсем тру путь в AS3, т.как по дороге теряется типизация. В том же HaXe она бы не потерялась.

DanQuimby: Если значений будет больше чем 1 и 0, то свитч логично заменить каким-нибудь мапом / массивом колбеков. Т.е. получится что-то в роде:

Код AS3:
function parse(data:String, callbacks:Callbacks):void
{
    var callback:Function;
    while (...)
    {
        callback = callbacks.get(currentChar);
        callback(x, y);
    }
}
ну как я понял класс Callbacks это лично ваш , и как я понял это класс "фабрики классов" ???
Ну а про свитч я тоже думаю что мона его не делать , иногда в нем путаешься , а фабрика будет получше
__________________
Ищу человечка(ов) для участия в совместных проектах
vkontakte.ru я тут

Создать новую тему Ответ Часовой пояс GMT +4, время: 12:12.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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