|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|
|||||
Регистрация: 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> Спасибо. |
|
|||||
Цитата:
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works. |
|
|||||
Регистрация: Jul 2006
Сообщений: 46
|
слушай умник, ты меня раздражаешь, есть расширение для firefox с sidebar, в котором находится swf. Необходимо передавать по событию в ff переменную в swf. Попробуй это организовать через ExternalInterface, я тебе заплачу и скажу что ты молодец
|
|
|||||
Себя Вы, видимо, не считаете с умником. Ну, может и правильно. Если Вы хотите чтобы кто-то решил Вашу проблему и готовы заплатить - то вы ошиблись разделом. А то, что написанное Вами - бред, это правда.
Если хотите получить помощь - приведите код работы с ExternalInterface (ну и js-составляющую для полноты картины)
__________________
...вселенская грусть |
|
|||||
Регистрация: Jul 2006
Сообщений: 46
|
я считаю себя не умнее окружающих, и если кто-то что-то говорит, то пытаюсь найти в этом смысл, а не ... забыли...далеко от темы
Цитата:
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> Добавлено через 3 минуты дело в том, что не только, по событию, т.е. нужно периодически передавать в swf новое значение параметра. Очевидным является ExternalInterface, но он не подходит одназначно. SetVariable в As3 не работает. |
|
|||||
Регистрация: Nov 2010
Сообщений: 497
|
Цитата:
|
|
|||||
Регистрация: Jul 2006
Сообщений: 46
|
нет
да возникает: securityError: Error #2060. Нарушение изолированной среды. Путь к swf: chrome://fexten/content/fexten.html |
|
|||||
Регистрация: Nov 2010
Сообщений: 497
|
Ну значит то, что я выше писал, должно помощь. allowScriptAccess:always нужно в правильные параметры писать (посмотрите документацию, какой из двух нужно) и строчку в код флешки (можно сразу в конструктор).
|
Часовой пояс GMT +4, время: 18:28. |
|
« Предыдущая тема | Следующая тема » |
|
|