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

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

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

Регистрация: Sep 2011
Сообщений: 27
The bomb! многомерные массивы

пытаюсь сделать так, чтобы массив, состоящий из массивов (3 штуки) парсированных от xml строк, загружался из мэйна. но компилятор выдает:
[Fault] exception, information=TypeError: Error #1010: Термин не определен и не имеет свойств.
Fault, Main() at Main.as:22

Main.as
Код AS3:
package XmlMassiv
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	import flash.display.*;
	import flash.net.*;
	import flash.events.*;
	import flash.system.*;
 
	/**
	 * ...
	 * @author nnn
	 */
	public class Main extends Sprite 
	{
 
		public function Main():void 
		{
		var t:xmlPars = new xmlPars();
		trace(t.massiv[0][0]);
		}  
 
	}
 
}
xmlPars.as

Код AS3:
package XmlMassiv 
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	import flash.display.*;
	import flash.net.*;
	import flash.events.*;
	import flash.system.*;
	/**
	 * ...
	 * @author nnn
	 */
	public class xmlPars 
	{
		var massiv:Array=new Array();
		public  function xmlPars ():void
		{
				var xmlLoader:URLLoader= new URLLoader();
		    	xmlLoader.load(new URLRequest("xml"));
		    	xmlLoader.addEventListener(Event.COMPLETE, LoadXML);
 
 
		}
 
 
			public  function LoadXML(e:Event):void
			{
 
 
				 massiv[0] = new Array();
				 massiv[1] = new Array();
				 massiv[2] = new Array();
				var pubDateXML:Array = new Array ();
				var descriptionXML:Array = new Array ();
				var titleXML:Array = new Array ();
				var xmlData = new XML(e.target.data);
 
 
				    for (var j:Number = 0; j < xmlData..item.length(); j++ ) 
				 	 {
					    massiv[0][j] = String(xmlData..item.pubDate[j]);
					 }
				    for (var i:Number = 0; i < xmlData..item.length(); i++ )
					 {
					    massiv[1][i] = String(xmlData..item.title[i]);
					 }
 
			    	for (var k:Number = 0; k < xmlData..item.length(); k++ )
					 {
					   massiv[2][k] = String(xmlData..item.description[k]);
					 }
 
			}
 
	}
 
}


Последний раз редактировалось MAGISTRS; 21.04.2012 в 02:31.
Старый 21.04.2012, 03:51
TanaTiX вне форума Посмотреть профиль Отправить личное сообщение для TanaTiX Найти все сообщения от TanaTiX
  № 2  
Ответить с цитированием
TanaTiX
 
Аватар для TanaTiX

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
LoadXML срабатывает после того как произошел запрос на получение данных (на загрузку необходимо время)
massiv вляется internal (по умолчанию), следовательно будет доступен только в случае нахождения в пределах одного пакета обоих классов (по коду так и есть, но код ужасен)
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

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

Регистрация: Sep 2011
Сообщений: 27
честно говоря не очень понял что нужно сделать чтобы ошибка не вылетала и все работало..

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

Регистрация: Feb 2009
Адрес: Гы...поди, найди!
Сообщений: 853
Записей в блоге: 1
Код AS3:
private var t:xmlPars;
public function Main():void 
{
	super();
	t = new xmlPars(onLoadXML);
}  
 
private function onLoadXML():void
{
	trace(t.massiv[0][0]);
}
//..
public var massiv:Array=new Array();
private var _onComplete:Function;
//..
 
public function xmlPars (onComplete:Function = null):void
{
	_onComplete = onComplete;
	//..
}
 
public  function LoadXML(e:Event):void
{
	//...
	if (_onComplete != null)
	{
		_onComplete();
		_onComplete = null;
	}
}
Приблизительно так, проверяйте (писал на коленке).
Название классов нужно начинать с большой буквы, а названия методов с маленькой.
Необходимо слушать событие ошибки загрузки.
__________________
http://www.chessmax.ru


Последний раз редактировалось Inet_PC; 21.04.2012 в 12:20.
Старый 22.04.2012, 13:46
MAGISTRS вне форума Посмотреть профиль Отправить личное сообщение для MAGISTRS Найти все сообщения от MAGISTRS
  № 5  
Ответить с цитированием
MAGISTRS

Регистрация: Sep 2011
Сообщений: 27
ОГРОМНОЕ СПАСИБО!!! )))))

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

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

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


 


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


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