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

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

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

Регистрация: Apr 2010
Сообщений: 17
По умолчанию Помогите разобраться в коде с xml

Доброго времени суток!
Я пока еще новичек в as, вот разбираюсь с примерами. Вот код класса поля (функция построения поля по xml файлу).
Код AS1/AS2:
class field
{
	private var depth:Number = 1000;
	private var columns:Number = 10;
	private var rows:Number = 10;
	private var spacing:Number = 30;
	private var mc:MovieClip;
	private var numberOfTypes:Number = 8;
	public function field()
	{
		function buildGrid()
		{
			trace("Test!");
			var board:XMLNode = new XML();
			board = boardXML.firstChild;
			var tempArray:Array = new Array();
			tempArray = board.childNodes;
			this.mc = _root.createEmptyMovieClip("mc", this.depth);
			for (var j:Number = 0; j<this.rows; ++j)
			{
				var tempArray2:Array = new Array();
				tempArray2 = tempArray[j].childNodes;
				for (var i:Number = 0; i<this.columns; ++i)
				{
					var name:String = "cell"+i+"_"+j;
					var x:Number = i*this.spacing;
					var y:Number = j*this.spacing;
					var type:Number = tempArray2[i].attributes.type;
					this.mc.attachMovie("cell",name,++this.depth);
					this.mc[name]._x = x;
					this.mc[name]._y = y;
					this.mc[name] = {x:i, y:j, name:name, type:type, clip:this.mc[name], dot:this.mc[name].tile.dot};
					this.mc[name].clip.tile.gotoAndStop(type);
				}
			}
			var boardXML:XML = new XML();
			boardXML.onLoad = buildGrid;
			boardXML.load("game.xml");
		}
	}
}
В общем, если выкинуть весь xml отсюда, то все работает. Помогите плз разобраться или дайте ссылочку какую-нибудь, где понятным языком написано про использование xml (окромя гугла).
Заранее спасибо и извиняюсь, если что не так =)

Старый 12.04.2010, 13:09
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 2  
Ответить с цитированием
in4core
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Функцию в функции писать - дурной тон! А если уж пишите класc то тем более порнография.

Опишите полностью что вы хотите сделать своиv классом. Я вам напишу может что. А так же покажите структуру XML . Мне кажется что то простое хотите сделать, а навернули свыше крыши. Вообщем рассказывайте.
п.с.
Код:
(boardXML == undefined) or ! ?

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

Регистрация: Apr 2010
Сообщений: 17
Код:
<map>
  <row>
    <cell type="1" />
    <cell type="1" />
    <cell type="1" />
    <cell type="1" />
    <cell type="5" />
    <cell type="4" />
    <cell type="4" />
    <cell type="4" />
    <cell type="6" />
    <cell type="1" />
  </row>
  <row>
    <cell type="1" />
    <cell type="4" />
    <cell type="1" />
    <cell type="4" />
    <cell type="2" />
    <cell type="6" />
    <cell type="1" />
    <cell type="1" />
    <cell type="3" />
    <cell type="1" />
  </row>
  <row>
    <cell type="1" />
    <cell type="1" />
    <cell type="1" />
    <cell type="1" />
    <cell type="1" />
    <cell type="3" />
    <cell type="1" />
    <cell type="1" />
    <cell type="3" />
    <cell type="1" />
  </row>
  <row>
    <cell type="1" />
    <cell type="4" />
    <cell type="2" />
    <cell type="1" />
    <cell type="1" />
    <cell type="1" />
    <cell type="1" />
    <cell type="1" />
    <cell type="1" />
    <cell type="1" />
  </row>
  <row>
    <cell type="1" />
    <cell type="1" />
    <cell type="1" />
    <cell type="1" />
    <cell type="5" />
    <cell type="4" />
    <cell type="2" />
    <cell type="1" />
    <cell type="1" />
    <cell type="1" />
  </row>
  <row>
    <cell type="1" />
    <cell type="1" />
    <cell type="1" />
    <cell type="1" />
    <cell type="2" />
    <cell type="1" />
    <cell type="1" />
    <cell type="1" />
    <cell type="3" />
    <cell type="1" />
  </row>
  <row>
    <cell type="1" />
    <cell type="1" />
    <cell type="2" />
    <cell type="1" />
    <cell type="1" />
    <cell type="1" />
    <cell type="1" />
    <cell type="2" />
    <cell type="8" />
    <cell type="1" />
  </row>
  <row>
    <cell type="1" />
    <cell type="1" />
    <cell type="1" />
    <cell type="1" />
    <cell type="1" />
    <cell type="2" />
    <cell type="4" />
    <cell type="8" />
    <cell type="1" />
    <cell type="1" />
  </row>
  <row>
    <cell type="1" />
    <cell type="1" />
    <cell type="4" />
    <cell type="1" />
    <cell type="4" />
    <cell type="8" />
    <cell type="1" />
    <cell type="1" />
    <cell type="1" />
    <cell type="1" />
  </row>
  <row>
    <cell type="1" />
    <cell type="1" />
    <cell type="1" />
    <cell type="1" />
    <cell type="1" />
    <cell type="1" />
    <cell type="1" />
    <cell type="1" />
    <cell type="1" />
    <cell type="1" />
  </row>
</map>
вот game.xml
Задумка простая - построить большое квадратное поле из множества маленьких квадратиков разного типа, тип каждого квадратика задан в xml. И все!
А насчет функции в функции: я просто брал пример из книжки, там было осуществлено все без классов... а так как я хотел сделать отдельный класс отвечающий за построение поля, то было сделано так: в конструктор был скопирован код... получилось функция в функции.

Старый 12.04.2010, 13:27
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 4  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
this в обработчике у вас указывает на объект через который вызывается этот обработчик, т.е. на boardXML

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

Регистрация: Apr 2010
Сообщений: 17
Простите, а вы не могли бы исправить, что не так? this тогда здесь вообще не нужен?

Старый 13.04.2010, 11:24
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 6  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Передавайте ссылку в свой класс на контейнер, в который будете аттачить ваши мувики.

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

Регистрация: Apr 2010
Сообщений: 17
В общем изменил я вот так:
Код AS1/AS2:
class field
{
           ...
	private var boardXML:XML = null;
	public function field()
	{
		this.boardXML:XML = new XML();
		this.boardXML.onLoad = buildGrid();
		this.boardXML.load("game.xml");
	}
           ...
}
Пишет, что "This statement is not permitted in a class definition." на строчки с onLoad и load. Что я делаю не так?

Старый 18.04.2010, 17:36
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 8  
Ответить с цитированием
in4core
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Код AS1/AS2:
class field {
  private var boardXML:XML = null;
   public function field()
	{
		boardXML = new XML();
		boardXML.onLoad = mx.utils.Delegate.create(this,buildGrid);
		boardXML.load("game.xml");
	}
           private function buildGrid() {
           trace(boardXML.firstChild.childNodes)
            }
}

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

Регистрация: Apr 2010
Сообщений: 17
Спасибо!

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

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

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


 


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


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