Показать сообщение отдельно
Старый 19.08.2007, 01:50
Torero вне форума Посмотреть профиль Отправить личное сообщение для Torero Найти все сообщения от Torero
  № 6  
Ответить с цитированием
Torero
 
Аватар для Torero

Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
Увязывая ролик с XML-ом, напоролся на непонятную ошибку.
При запуске ролика, должны появляться экземпляры указанных в XML классов с заданными в XML параметрами. Однако, после того как появляется 1й экземпляр, Flash почему-то выпадает в ошибку
TypeError: Error #1009: Cannot access a property or method of a null object reference.
Проблеммную строчку я закомментировал и выделил белым. Подскажите пжл причину ошибки.

XML:
Код:
<page>
	<classobj classname="D" params="firstparams" />
	<classobj classname="E" params="secondparams" />
</page>
AS3
Код:
package {
import flash.events.Event
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.xml.XMLNode;
import flash.utils.getDefinitionByName;
	public class C extends Sprite {
		public function C(){
			loadXML();
		}
		
		private function loadXML(){
			var loader:URLLoader;
			loader = new URLLoader();
			loader.addEventListener(Event.COMPLETE, xmlLoaded);
			var request:URLRequest = new URLRequest("test.xml");
			loader.load(request);
			
			function xmlLoaded(event:Event):void {
			    var myXML:XML = new XML(loader.data);
				runxml(myXML);
			}

			function runxml(xml:XML) {  
				var n:uint;
				var instances:Array;
				var ClassReference:Class;
				for each(item in xml.children()) {
					n++;
					ClassReference = getDefinitionByName(item.@classname) as Class;
					trace(n+": "+item.@classname);
					//instances[n] = new ClassReference();	 	
				}
			}
		}
	}
}
AS3-D
Код:
package {
import flash.display.Sprite;
	public class D extends Sprite {
		public function D(){
			trace("D class Loaded");
		}
	}
}
AS3-E
Код:
package {
import flash.display.Sprite;
	public class E extends Sprite {
		public function E(){
			trace("E class Loaded");
		}
	}
}


Последний раз редактировалось Torero; 19.08.2007 в 02:04.