Форум 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:44
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 4  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

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

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

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

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

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

Старый 22.11.2011, 21:11
xMailer вне форума Посмотреть профиль Отправить личное сообщение для xMailer Найти все сообщения от xMailer
  № 7  
Ответить с цитированием
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, 00:20
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 8  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,112
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Возможно использовать еще одну невидимую флэшку, которую по-необходимости обновлять (заново встраивать) с нужными данными через flashvars? Флэшка при запуске через LocalConnection будет сообщать основной все свои флэшвары. Такой вариант сойдет?
__________________
hauts.ru

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

Регистрация: Jul 2006
Сообщений: 46
Цитата:
Сообщение от Hauts Посмотреть сообщение
Возможно использовать еще одну невидимую флэшку, которую по-необходимости обновлять (заново встраивать) с нужными данными через flashvars? Флэшка при запуске через LocalConnection будет сообщать основной все свои флэшвары. Такой вариант сойдет?
именно такой вариант используется, правда этот вариант похож на "костыли", но посмотрим как будет в эксплуатации. Спасибо. Тему можно закрывать.

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

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

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

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

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


 


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


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