Показать сообщение отдельно
Старый 22.10.2008, 03:38
AL.exe вне форума Посмотреть профиль Отправить личное сообщение для AL.exe Посетить домашнюю страницу AL.exe Найти все сообщения от AL.exe
  № 5  
Ответить с цитированием
AL.exe
 
Аватар для AL.exe

Регистрация: Jan 2004
Адрес: Net
Сообщений: 1,049
Отправить сообщение для AL.exe с помощью ICQ
Ну, вот, к примеру, по-быстрому склепал пример с присвоением публичной переменной главного класса какого-то значения из прелоадера:

Код:
/*    Preloader.as    */

package 
{
	
	import flash.display.Loader
	import flash.display.Sprite;
	import flash.net.URLRequest;
	import flash.events.Event
	import flash.display.MovieClip
	
	
	
	
	public class Preloader extends Sprite
	{
		private var mainLoader:Loader = new Loader()
		public var movie:Main
		
		
		public function Preloader() {
			
			mainLoader.load(new URLRequest("main.swf"))
			trace("Preloader started")
			
			mainLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, startMain)
			
		}
		
		private function startMain(e:Event) 
		{
			trace("Main Movie loaded")
			
                        //смотрим старое значение переменной:
			trace((mainLoader.content as Main).sin)
			
			
                        //записываем объект в переменную, потому что напрямую в mainLoader.content нам не дадут присваивать значения переменным
			movie = (mainLoader.content as Main)
			
			movie.sin = "new variable ;)"
			
                        //смотрим новое:
			trace(movie.sin)
			
			addChild(mainLoader.content)
		}
		
	}
	
}

Код:
/*    Main.as    */
package
{
	
	import flash.display.Sprite;
	
	
	public class Main extends Sprite
	{
		

		public var sin:String = "old variable"
		public var sex:int
		public var salvation:Array
		
		
		public function Main() 
		{
			trace("Main movie started")
					
		}
		
	}
	
}
Собственно, прелоадер с базовым классом Preloader грузит main.swf с базовым классом Main и задает ему кастомное свойство "sin", что и иллюстрируется трейсами.

Вывод будет вот такой:

Код:
Preloader started
Main movie started
Main Movie loaded
old variable
new variable ;)
Собственно вот, как Вы и хотели, безо всяких строк с парами имя=значение.

P.S.Что-то я совсем засыпаю, забыл добавить в прелоадер получение FlashVars, но это, в принципе, обсуждалось уже на форуме: Вам нужно будет задействовать в коде прелоадера ассоциативный массив stage.loaderInfo.parameters
__________________
Дело не в тебе


Последний раз редактировалось AL.exe; 22.10.2008 в 03:48. Причина: палю метаданные из флешдевелопа :D