2010-12-15 4 views
2

Можно ли щелкнуть/получить значения/действия ActionScript с помощью Javascript без ExternalInterface?Взаимодействие между Javascript и Flash/ActionScript без ExternalInterface?

Как работает GreaseMonkey? Могу ли я сделать это с помощью GreaseMonkey?

+0

почти уверен, что вы не можете, однако есть другие интерфейсы, которые вы можете использовать для создания макросов для взаимодействия со вспышкой, google для «addon macros firefox flash» или что-то в этом роде – yoda

+0

Но как те, что делают взломанные флеш-игры, вводят код? См. Этот http://userscripts.org/scripts/review/32886. Я не мог понять эту часть var swf = document.embeds [0] || $ ("flashcontent") || single ("// object [содержит (@data, '.swf')]"); unsafeWindow.game = swf; var actions = single ("// div [@ class = 'game_actions']") || single ("// div [@ class = 'channeleHolder']") || $ ("header") || $ ("content") || document.body; – Rajasankar

ответ

1

это довольно трудно, но возможно, можно реализовать LocalConnection или NetStream прямое соединение (для использования send() метод) в JavaScript :)

другой способ использовать что-то в качестве буфера, который будет проверен SWF и JavaScript каждый раз. Простой PHP скрипт будет хороший буфер, также, возможно, эти данные могут быть сохранены в браузере в адресной строке после#

и другой забавной идеей: вы можете разработать SWF мессенджер, который будет загружаться каждый раз, когда нужно передать сообщение для вспышки. сообщение передается в мессенджер как переменные get и создает LocalConnection с основным swf и передает данные там. но единственный способ вызвать JS от вспышки navigateToURL или, может быть sendToURL

2

как о

swf=document.embeds[0];//or 1 or 2 etc 
swfvar1=swf.GetVariable("swfvariable"); 
swfvar2="something"; 
swf.SetVariable("swfvariable",swfvar2); 

его GetVariable ("swfvar"); с именем var как строка и SetVariable ("swfvar", jsval); с swfvar именем в виде строки и значения Js, что вы хотите

для выполнения функции, есть 2 способа 1. используя код выше с вар швейцарских франков, swf.SwfFunc (Params); простой, не так ли? да.

2.again с кодом выше swf.GetVariable ("SwfFunc (params)"); , так как он получает значение функции, он выполняет все это для поиска возвращаемого значения, может быть плохо, если параметры являются уродливыми с перекрывающимися котировками, потому что в вызове уже есть котировки

лично, мне нравится метод 2 потому что он может использоваться и для других целей, например, для выполнения кода. как этот

swf.GetVariable(" 
function(){ 
//whatever 
}"); 

Я считаю, это очень полезно, но помните, что вы должны экранировать кавычки в этой функции это на самом деле, как нагнетание Eval заявление, но лучше

Смежные вопросы