2010-12-15 5 views
2

ExternalInterface없이 Javascript를 사용하여 ActionScript 값/액션을 클릭하거나 가져올 수 있습니까?ExternalInterface없이 Javascript와 Flash/ActionScript 간의 상호 작용이 가능합니까?

GreaseMonkey의 작동 방식은 무엇입니까? GreaseMonkey를 사용하여 할 수 있습니까?

+0

거의 확실 당신은 할 수 없습니다 플래시와 상호 작용하는 매크로를 만드는 데 사용할 수있는 다른 인터페이스, "addon macros firefox flash"또는 그와 비슷한 것 – yoda

+0

그런데 해킹 플래시 게임을 삽입하면 어떻게 코드가 주입됩니까? 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

답변

1

는 자바 스크립트 :)으로합니다 (send() 방법을 사용하는) LocalConnection 또는 NetStream 직접 연결을 구현할 수 어쩌면 오히려 강하고입니다

다른 방법은 SWF와 자바 스크립트에 의해 확인됩니다 버퍼로 뭔가를 사용하는 것입니다 모든 특정 시간. 간단한 PHP 스크립트는 좋은 버퍼 될 것 도 어쩌면이 데이터는#

또 다른 재미 아이디어 후 브라우저 ADRESS 줄에 저장 될 수있다 : 당신이 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")입니다; 문자열 이름이 이고 인 SetVariable ("swfvar", jsval); 문자열로 swfvar 이름과

이 기능을 실행하려면 무엇이든 JS 값 , swf.SwfFunc (PARAMS)를 var에 SWF로 위의 코드를 사용하여 2 가지 방법 1.이 있습니다; 간단하고 맞습니까? 예.

2. 위의 코드가있는 코드 swf.GetVariable ("SwfFunc (params)"); 이 함수의 값을 얻었으므로 반환 값을 찾기 위해 모두 실행합니다. 호출에 이미 따옴표가 있기 때문에 매개 변수가 겹치면 추울 수 있습니다.

개인적으로, 나는 방법 2를 좋아합니다. 코드 실행과 같은 다른 용도로도 사용될 수 있기 때문입니다. 이

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

처럼 나는 그러나이있다, 이것은 매우 유용하지만, 그 기능이 평가 후면 문을 주입처럼 실제로 에 따옴표를 이스케이프해야 기억하지만, 더 나은

관련 문제