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

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

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

Регистрация: Jan 2007
Сообщений: 34
По умолчанию Как передать FlashVars флешке, загружаемой с помощью Loader.loadBytes?

Когда загружаешь с помощью Loader.load, их можно передать с URLRequest. Но как это сделать, когда используется Loader.loadBytes?

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

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
Если вы создатель загружаемой флешки, то просто добавьте ей публичный метод, в котором укажете необходимые параметры. Загрузили флешку, вызвали метод, передали параметры. Как-то так:
Код AS3:
package 
{
	import flash.display.Sprite;
	import flash.events.Event;
 
	public class Main extends Sprite 
	{
		public function Main():void 
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
 
		private function init(event:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			// Вот здесь вызываем, или можно из другого класса
			// вызвать, если нужно передать параметры до добавления
			// на сцену. В этом случае нужно еще поставить какой-нибудь
			// флаг типа flashVarsInited = true.
			var info:Object = stage.loaderInfo.parameters;
			useFlashVars(info.firstParam, info.secondParam, info.thirdParam);
		}
 
		public function useFlashVars(firstParam:int, secondParam:String, thirdParam:Number):void
		{
			// do something
		}
 
	}
 
}

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

Регистрация: Jan 2007
Сообщений: 34
Я, как раз таки, не имею доступа к загружаемой флешке.

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

Регистрация: Feb 2009
Адрес: Гы...поди, найди!
Сообщений: 853
Записей в блоге: 1
Флешка которую собираемся эмбедить:
Код AS3:
package
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.text.TextField;
 
	public class Embedded extends Sprite
	{
		public function Embedded()
		{
			super();
 
			addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
		}
 
		private function onAddedToStage(e:Event):void
		{
			var tf:TextField = new TextField();
			addChild(tf);
 
			var vars:Object = loaderInfo.parameters;
			if (vars)
			{
				for (var prop:String in vars)
				{
					var found:Boolean = true;
					tf.appendText("vars[" + prop + "] = " + vars[prop] + "\n");
				}
				if (!found)
				{
					tf.appendText("vars are empty");
				}
			}
			else
			{
				tf.appendText("vars === null");
			}
		}
	}
}
Флешка которая передает параметры:
Код AS3:
package
{
	import flash.display.Loader;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.system.LoaderContext;
 
	public class TestLoadBytesFlashvars extends Sprite
	{
		[Embed(source="Embedded.swf", mimeType="application/octet-stream")]
		private static const SWF_EMBEDDED:Class;
 
		public function TestLoadBytesFlashvars()
		{
			addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
		}
 
		private function onAddedToStage(event:Event):void
		{
			var loader:Loader = new Loader();
			var lc:LoaderContext = new LoaderContext();
			lc.parameters = {"prop": "5"};
			loader.loadBytes(new SWF_EMBEDDED(), lc);
 
			addChild(loader);
		}
	}
}
Получаем на экране:
vars[prop] = 5
__________________
http://www.chessmax.ru

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

Регистрация: Jan 2007
Сообщений: 34
Спасибо. Невнимательно читал документацию.

Старый 19.12.2012, 16:05
Frost47rus вне форума Посмотреть профиль Отправить личное сообщение для Frost47rus Найти все сообщения от Frost47rus
  № 6  
Ответить с цитированием
Frost47rus
[+4 08.09.13]

Регистрация: May 2012
Сообщений: 131
Спасибо, полезно =)

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

Теги
flashvars , loadbytes , loader , loaderInfo , parameters
Опции темы
Опции просмотра

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

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


 


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


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