2010-12-15 9 views
2

ExternalInterfaceなしでJavascriptを使用してActionScript値/アクションをクリック/取得することは可能ですか?JavascriptとFlash/ActionScriptとの間の相互作用(ExternalInterfaceなし)

GreaseMonkeyの仕組みは?私はGreaseMonkeyを使ってそれを行うことはできますか?

+0

ほとんどわからあなたがすることはできませんFlashと対話するためのマクロを作成するために使用できる他のインターフェース「addon macros firefox flash」などのもの – yoda

+0

しかし、これらのハックのフラッシュゲームを埋め込むコードの注入方法は? http://userscripts.org/scripts/review/32886を参照してください。私はこの部分を理解できませんでした。var swf = document.embeds [0] || $( "flashcontent")|| single( "//オブジェクト[contains(@data、 '.swf')]"); unsafeWindow.game = swf; var actions = single( "// div [@ class = 'game_actions']")|| single( "// div [@ class = 'channeHolder']")|| $( "header")|| $( "content")|| document.body; – Rajasankar

答えて

1

javascriptの:)に(send()メソッドを使用するため)LocalConnectionまたはNetStreamの直接接続を実現することが可能かもしれない、むしろ硬いがあります

他の方法は、SWFおよびJavaScriptによって確認することがありますバッファとして何かを使用することですすべての特定の時間。シンプルなPHPスクリプトは良いバッファになり、も多分このデータは#

、別の面白いアイデアた後、ブラウザのアドレスバーに格納することができます:あなたはSWFメッセンジャーを開発することができ、あなたが渡す必要があるたびにロードされます点滅するメッセージ。メッセージはメッセンジャーにget変数として渡され、メインswfとLocalConnectionが作成され、そこでデータが渡されます。しかし、フラッシュから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の値を持つ 、VaRのswfファイルと上記のコードを使用して2つの方法 1、 swf.SwfFunc(paramsが)あります。 シンプル、そうですか?はい。

2.上記コードのある文字 swf.GetVariable( "SwfFunc(params)"); これは関数の値を取得して以来、戻り値を探すためにすべてを実行します。呼び出しにすでに引用符があるのでパラメータが重複していると悪い可能性があります。

個人的には、実行コードのように他の目的にも使用できるからです。この

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

ように私は、しかしあります、これは非常に便利、しかし、あなたはその機能、それはevalの文を注入するように実際にある に引用符をエスケープする必要があります覚えて、より良い