是否可以在没有ExternalInterface的情况下使用Javascript单击/获取ActionScript值/动作?Javascript与Flash/ActionScript之间没有ExternalInterface的互动?
GreaseMonkey是如何工作的?我可以使用GreaseMonkey吗?
是否可以在没有ExternalInterface的情况下使用Javascript单击/获取ActionScript值/动作?Javascript与Flash/ActionScript之间没有ExternalInterface的互动?
GreaseMonkey是如何工作的?我可以使用GreaseMonkey吗?
这是相当辛苦,但也许可以实现LocalConnection
或NetStream
直接连接(使用send()
法)在javascript :)
的另一种方法是使用的东西作为将通过SWF和JavaScript来检查的缓冲区每隔一段时间。一个简单的PHP脚本将是一个很好的缓冲,也或许这个数据可以经过#
和其他有趣的想法被存储在浏览器的地址栏中:你可以开发一个SWF信使,将在每次你需要传递时加载一条消息闪烁。消息作为获取变量传递给信使,它将创建一个LocalConnection
,其中包含主要的swf并传递数据。但是从Flash调用JS的唯一方法是navigateToURL
也许sendToURL
怎么样
swf=document.embeds[0];//or 1 or 2 etc
swfvar1=swf.GetVariable("swfvariable");
swfvar2="something";
swf.SetVariable("swfvariable",swfvar2);
其 的getVariable( “swfvar”); var name作为字符串 和 SetVariable(“swfvar”,jsval); 与swfvar的字符串名字和任何你想要的
执行功能的JS值,在使用上面的代码使用var SWF, swf.SwfFunc(PARAMS)2种方式 1; 简单吧?是。
2.again with code above swf.GetVariable(“SwfFunc(params)”); 因为它获得函数的值,所以它执行所有的操作以查找返回值,如果参数带有重叠引号的丑陋可能会很糟糕,因为在调用中已经有引号
个人,我喜欢方法2因为它也可以用于其他目的,例如执行代码。这样
swf.GetVariable("
function(){
//whatever
}");
我觉得这是非常有用的,但要记住,你必须逃脱报价在功能 它实际上就像是注入eval语句,但更好的
几乎可以肯定你不能,但有其他接口,你可以使用它来创建宏与flash进行交互,谷歌的“附加宏firefox flash”或类似的东西 – yoda 2010-12-15 06:01:15
但那些把黑客Flash游戏注入代码?看到这个http://userscripts.org/scripts/review/32886。我无法理解这部分var swf = document.embeds [0] || $(“flashcontent”)|| single(“// object [contains(@data,'.swf')]”); unsafeWindow.game = swf; var actions = single(“// div [@ class ='game_actions']”)|| single(“// div [@ class ='channeHolder']”)|| $(“header”)|| $(“content”)|| document.body的; – Rajasankar 2010-12-15 10:27:44