Показать сообщение отдельно
Старый 21.07.2011, 12:42
savva вне форума Посмотреть профиль Отправить личное сообщение для savva Найти все сообщения от savva
  № 5  
Ответить с цитированием
savva

Регистрация: Jul 2011
Сообщений: 79
Хорошо,тогда поставлю вопрос следующим образом.

Как мне сделать класс Main таким образом чтобы все работы со stage такие как :
Код:
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE
.....
stage3D = stage.stage3Ds[0];
stage3D.addEventListener(Event.CONTEXT3D_CREATE, onContextCreate);
stage3D.requestContext3D();
Производились в классе не являющимся Main, а классом объект которого создаётся в Main. То бишь в мэйне находился xml парсер и всё.
Код:
package 
{
	import flash.display.Sprite;
	import flash.display.Stage3D;
	import flash.events.Event;
		import flash.utils.ByteArray;
	import Scene;
	
	/**
	 * ...
	 * @author sa
	 */
	public class Main 
	{
		[Embed("FormMain.xml", mimeType = "application/octet-stream")] private static const EmbedModel:Class; 
		public function Main()
		{
			var file:ByteArray = ((new EmbedModel()) as ByteArray);
			var str:String = file.readUTFBytes( file.length );
			var xml:XML = new XML( str );
			var sc:Scene = new Scene(xml, /*сюда нужно передать stage*/);
		}
	}
}
при вот таком вызове
Код:
.........
	public class Main extends Sprite
	{
		[Embed("FormMain.xml", mimeType = "application/octet-stream")] private static const EmbedModel:Class; 
		public function Main()
		{
			var sc:Scene = new Scene();
		}		
	}
}
в классе Scene появляется ошибка :
Код:
[Fault] exception, information=TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
Как передать stage в класс сцена?


Последний раз редактировалось savva; 21.07.2011 в 12:50.