Javascript和Flash/ActionScript之间没有外部接口的交互?
是否可以在没有外部接口的情况下使用Javascript单击/获取ActionScript值/操作Javascript和Flash/ActionScript之间没有外部接口的交互?,javascript,flash,actionscript-3,greasemonkey,Javascript,Flash,Actionscript 3,Greasemonkey,是否可以在没有外部接口的情况下使用Javascript单击/获取ActionScript值/操作 这就是GreaseMonkey的工作原理吗?我可以用GreaseMonkey实现吗?在javascript中实现LocalConnection或NetStream直接连接(用于使用send()方法)是相当困难的, 另一种方法是使用一些东西作为缓冲区,SWF和javascript会在每次特定时间检查这些缓冲区。一个简单的php脚本将是一个很好的缓冲区,也可能这些数据可以在 还有一个有趣的想法:你可以
这就是GreaseMonkey的工作原理吗?我可以用GreaseMonkey实现吗?在javascript中实现
LocalConnection
或NetStream
直接连接(用于使用send()
方法)是相当困难的,另一种方法是使用一些东西作为缓冲区,SWF和javascript会在每次特定时间检查这些缓冲区。一个简单的php脚本将是一个很好的缓冲区,也可能这些数据可以在
还有一个有趣的想法:你可以开发一个SWF messenger,每当你需要将消息传递给flash时,它都会被加载。消息作为get变量传递给messenger,它将使用主swf创建一个
LocalConnection
,并在那里传递数据。但是从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名称作为字符串
和
SetVariable(“swfvar”,jsval);
swfvar名称为字符串,js值为任意值
要执行函数,有两种方法
1.将上述代码与var swf一起使用,
swf.SwfFunc(参数);
很简单,对吧?对
2.再次使用上面的代码
GetVariable(“SwfFunc(params)”);
由于它获取函数的值,所以它执行所有函数以查找返回值,如果参数使用重叠的引号,则可能不好,因为调用中已经有引号
就个人而言,我喜欢方法2,因为它也可以用于其他目的,比如执行代码。像这样
swf.GetVariable("
function(){
//whatever
}");
我发现这非常有用,但请记住,您必须在该函数中转义引号
这实际上就像注入一个eval语句,但更好的是几乎可以肯定你不能,但是你可以使用其他接口来创建宏来与flash交互,谷歌的“addon macros firefox flash”或类似的东西,但是那些开发hack flash游戏的人是如何注入代码的呢?看这个。我无法理解这个部分var swf=document.embeddes[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;