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

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

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

Регистрация: Jul 2006
Сообщений: 46
По умолчанию Динамическая передача значений: flashvars вместо externalinterface

Задача: передать значение javascript переменной в swf.

От использования ExternalInterface пришлось отказаться, т.к. для обеспечения работоспособности требуется заставлять пользователя делать прописки в Global Security Settings panel, что не подходит в рамках проекта.

остался вариант с flashvars:
Код:
<script src="js/swfobject.js"></script>
	<script>
		function refresh(param){
			// удалим все childs
			var sender=document.getElementById("sender");
			while(sender.hasChildNodes()){
				sender.removeChild(sender.lastChild);
			}
			// добавим div
			var sender = document.createElement("div");
			sender.id  = "sender_swf";
			document.getElementById("sender").appendChild(sender);
			// swf
			swfobject.embedSWF(
				"sender.swf", 
				"sender_swf", "100%", "100%", "10.0.0", 
				"expressInstall.swf", 
				{val_user: param}, 
				{}, 
				{id:"sender_swf"});
		}
	</script>
</head>
<body onload="refresh('start')">
	<button onclick="refresh('user value')">Послать</button>
	<div id="sender"></div>
</body>
Существуют ли более рациональные варианты передать значение javascript переменной в swf при такой постановке задачи??
Спасибо.

Старый 22.11.2011, 18:39
Genzo вне форума Посмотреть профиль Отправить личное сообщение для Genzo Посетить домашнюю страницу Genzo Найти все сообщения от Genzo
  № 2  
Ответить с цитированием
Genzo
 
Аватар для Genzo

блогер
Регистрация: Feb 2010
Адрес: MSK
Сообщений: 859
Записей в блоге: 3
Отправить сообщение для Genzo с помощью ICQ Отправить сообщение для Genzo с помощью Skype™
Цитата:
От использования ExternalInterface пришлось отказаться, т.к. для обеспечения работоспособности требуется заставлять пользователя делать прописки в Global Security Settings panel, что не подходит в рамках проекта.
Бред.
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works.

Старый 22.11.2011, 20:24
xMailer вне форума Посмотреть профиль Отправить личное сообщение для xMailer Найти все сообщения от xMailer
  № 3  
Ответить с цитированием
xMailer

Регистрация: Jul 2006
Сообщений: 46
Цитата:
Сообщение от Genzo Посмотреть сообщение
Бред.
слушай умник, ты меня раздражаешь, есть расширение для firefox с sidebar, в котором находится swf. Необходимо передавать по событию в ff переменную в swf. Попробуй это организовать через ExternalInterface, я тебе заплачу и скажу что ты молодец

Старый 22.11.2011, 20:48
crazyone вне форума Посмотреть профиль Отправить личное сообщение для crazyone Найти все сообщения от crazyone
  № 4  
Ответить с цитированием
crazyone
 
Аватар для crazyone

блогер
Регистрация: Nov 2007
Адрес: Киев
Сообщений: 557
Записей в блоге: 2
Цитата:
Сообщение от xMailer Посмотреть сообщение
слушай умник, ты меня раздражаешь, есть расширение для firefox с sidebar, в котором находится swf.
С этого и надо было начать.

Старый 22.11.2011, 20:44
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 5  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Себя Вы, видимо, не считаете с умником. Ну, может и правильно. Если Вы хотите чтобы кто-то решил Вашу проблему и готовы заплатить - то вы ошиблись разделом. А то, что написанное Вами - бред, это правда.
Если хотите получить помощь - приведите код работы с ExternalInterface (ну и js-составляющую для полноты картины)
__________________
...вселенская грусть

Старый 22.11.2011, 21:11
xMailer вне форума Посмотреть профиль Отправить личное сообщение для xMailer Найти все сообщения от xMailer
  № 6  
Ответить с цитированием
xMailer

Регистрация: Jul 2006
Сообщений: 46
Цитата:
Сообщение от gloomyBrain Посмотреть сообщение
Себя Вы, видимо, не считаете умником
я считаю себя не умнее окружающих, и если кто-то что-то говорит, то пытаюсь найти в этом смысл, а не ... забыли...далеко от темы
Цитата:
Сообщение от gloomyBrain Посмотреть сообщение
Если хотите получить помощь - приведите код работы с ExternalInterface (ну и js-составляющую для полноты картины)
Код AS3:
package 
{
	import flash.display.*;
	import flash.events.*;
	import flash.text.*;
	import flash.external.ExternalInterface;
 
	public class Main extends Sprite 
	{
		private var txt:TextField;
 
		public function Main():void 
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
 
		private function init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			var format:TextFormat = new TextFormat();
			format.align = TextFormatAlign.LEFT;
			format.size = 6;
 
			txt = new TextField();
			txt.defaultTextFormat = format;
			txt.autoSize = TextFieldAutoSize.LEFT;
			txt.text = "";
			txt.x = stage.stageWidth/2-txt.width/2;
			txt.y = stage.stageHeight/2-txt.height/2;
			addChild(txt);
 
			ExternalInterface.addCallback("setparam", setparam);
		}
 
		private function setparam(param:String):void { 
			txt.text = "param: " + param;
		} 		
	}
}
Код:
<script src="swfobject.js" type="text/javascript"></script>
	<script>
		function sets(param) {
			document.getElementById("fsidebar-movie").setparam(param);
		}
		
		swfobject.embedSWF(
			"chrome://fsidebar/content/sample.swf", 
			"sender-swf", "100%", "100%", "10.0.0",
			"expressInstall.swf", 
			{}, {}, {id:"fsidebar-movie"});
		}
	
	</script>
	
  </head>
  <body>
	<div>
		<button onclick="sets('1111111111111111111111111111111')">Послать</button>
	</div>
	<div id="sender-swf"></div>
  </body>
ExternalInterface - не работает, как можно еще, код в посте №1, могут быть еще варианты??? кода не надо? надо возможное направление

Добавлено через 3 минуты
Цитата:
Сообщение от artcraft Посмотреть сообщение
если параметры передаются только при старет то flashvars - самый подходящий способ
дело в том, что не только, по событию, т.е. нужно периодически передавать в swf новое значение параметра. Очевидным является ExternalInterface, но он не подходит одназначно. SetVariable в As3 не работает.

Старый 23.11.2011, 12:17
maxkar вне форума Посмотреть профиль Отправить личное сообщение для maxkar Найти все сообщения от maxkar
  № 7  
Ответить с цитированием
maxkar

Регистрация: Nov 2010
Сообщений: 497
Цитата:
Сообщение от xMailer Посмотреть сообщение
ExternalInterface - не работает, как можно еще, код в посте №1, могут быть еще варианты??? кода не надо? надо возможное направление
Плеер дебажный? Там SecurityError случайно не возникает на addCallback? Я не вижу в коде установки
Код:
<param name="allowScriptAccess" value="always" /> // или его аналога в swfObject
flash.system.Security.allowDomain(sourceDomain); // в коде AS

Старый 23.11.2011, 15:45
xMailer вне форума Посмотреть профиль Отправить личное сообщение для xMailer Найти все сообщения от xMailer
  № 8  
Ответить с цитированием
xMailer

Регистрация: Jul 2006
Сообщений: 46
Цитата:
Сообщение от maxkar Посмотреть сообщение
Плеер дебажный?
нет
Цитата:
Сообщение от maxkar Посмотреть сообщение
Там SecurityError случайно не возникает на addCallback?
да возникает: securityError: Error #2060. Нарушение изолированной среды.
Путь к swf: chrome://fexten/content/fexten.html

Старый 23.11.2011, 16:20
maxkar вне форума Посмотреть профиль Отправить личное сообщение для maxkar Найти все сообщения от maxkar
  № 9  
Ответить с цитированием
maxkar

Регистрация: Nov 2010
Сообщений: 497
Цитата:
Сообщение от xMailer Посмотреть сообщение
да возникает: securityError: Error #2060. Нарушение изолированной среды.
Ну значит то, что я выше писал, должно помощь. allowScriptAccess:always нужно в правильные параметры писать (посмотрите документацию, какой из двух нужно) и строчку в код флешки (можно сразу в конструктор).

Старый 22.11.2011, 20:53
artcraft вне форума Посмотреть профиль Отправить личное сообщение для artcraft Посетить домашнюю страницу artcraft Найти все сообщения от artcraft
  № 10  
Ответить с цитированием
artcraft
 
Аватар для artcraft

блогер
Регистрация: Aug 2005
Адрес: www.artcraft.cz
Сообщений: 1,967
Записей в блоге: 6
Отправить сообщение для artcraft с помощью ICQ
если параметры передаются только при старет то flashvars - самый подходящий способ
__________________
Хороший отдых - половина работы.

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

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

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


 


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


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