2010-04-19 5 views
2

이상적인 상황/설정 : 플래시 무비 1 개와 하이퍼 링크가 몇 개인 div가 포함 된 페이지입니다. 이 하이퍼 링크 각각에 고유 한 클래스 이름과 같이 있습니다 복사 코드제어 자바 스크립트> 플래시를 통한 CSS

<ul> 
    <li><a href="" class="randomname1"></a></li> 
    <li><a href="" class="randomname2"></a></li> 
    <li><a href="" class="randomname3"></a></li> 
    <li><a href="" class="randomname4"></a></li> 
    </ul> 

자체가 4 버튼이 포함됩니다 플래시 무비. 이 버튼 중 하나를 클릭하면 Flash가 Jquery/JS와 통신하고 특정 클래스 이름을 강조 표시하도록합니다.

아이디어는 지금까지

자바 스크립트의 경우, 그것은 문제가 있다는 것입니다

$(function() { 
function setClass(className) {$("."+className).css("background","red");} 
}); 

처럼 그리고

1. button 1 
    ExternalInterface.call("setClass","randomname1"); 

    1. button 2 
    ExternalInterface.call("setClass","randomname2"); 

    1. button 3 
    ExternalInterface.call("setClass","randomname3"); 

    1. button 4 
    ExternalInterface.call("setClass","randomname4"); 

플래시 내의 특정 키 프레임에서 볼 것 정말 잘 작동하지 않습니다. Flash가 JS와 제대로 통신하는지 확인하지 못합니다.

나를 올바른 방향으로 다시 안내 할 수있는 아이디어 나 힌트가 있습니까?

J.

+1

안녕하세요. 정확하게 잘 작동하지 않는 것은 무엇입니까? 'background' 대신'backgroundColor'를 시도 했습니까? 왜'setClass' 함수를'$()'에 포함시키는 특별한 이유가 있습니까? –

+0

Pekka에게 답장을 보내 주셔서 감사합니다. 작동하지 않는 이유는 플래시의 특정 프레임으로 이동할 때 아무런 효과가 없다는 것입니다. backgroundColor도 변경했지만 아무 것도 변경하지 않았습니다. $()에 setClass를 래핑 할 특별한 이유가 없으므로이를 제거하고 결과가 아닌 것으로 다시 테스트했습니다. 필요한 경우/html 파일을 사용할 수있게 할 수 있습니까? –

답변

0

setClass 방법은 플래시 코드에 표시되지 않습니다 - 메소드가 $(document).ready() 폐쇄

내부에 캡슐화로 (경우에 당신이 당신의 $(function()... 전화가 $(document).ready(function()... 단순히 속기, 궁금)

당신 플래시를 위해 윈도우 개체 또는 다른 전역 적으로 액세스 가능한 개체에 메서드를 연결해야합니다. 다음과 같은 것 :

$(function() { 
    window.setClass = function(className) {$("."+className).css("background","red");} 
}); 

가장 간단한 방법입니다. 다음 플래시

$(function() { 
    var ns = window.myNamespace = {}; 
    ns.setClass = function(className) {$("."+className).css("background","red");} 
}); 

.... :

... 또는 윈도우 네임 스페이스 오염을 막을 수

ExternalInterface.call("myNamespace.setClass","randomname1"); 

... 그러나 나는 잘 알고 아니에요 참고로 두 번째 예제가 효과가 있는지 여부를 알기에 충분한 플래시.

+0

Graza에게 감사의 말을 전합니다. 나는 제안을 시도하고 나는 다만 정확하게 무언가를하고 있지 않다 감각이있다. 내가 여기 사용할 수있는 기본 파일을 만들었습니다 는 는 잘하면 문제는 파일/사이트가 "개인"것 같다 :) –

+0

매우 간단 http://www.mediafire.com/?yigmfed0mig. 링크가 작동하지 않는 경우 변경하고 싶을 수 있습니다. 그런 다음 다른 브라우저에서 테스트하여 실제로 로그인하지 않았을 때 액세스 할 수 있는지 확인하십시오 (다른 사용자가 볼 수있는 경우). – Graza

+0

안녕 Graza, 사용할 수 있어야 링크 ... 언급 한 바와 같이, 내가 플래시에 익숙한 아니지만, 잘하면 다른 사람이 당신을 도울 수 - 그래도 난 훨씬 더 도움이 될 수 있습니다 * * 잘 모르겠어요 - http://www.mediafire.com/?yigmfed0mig JS 및 HTML을 살펴볼 수 있다면 JS 자체에서 문제가 더 중요하다고 생각하면 이미 좋을 것입니다. 이 한 줄에 전부로 하드 –

0

당신이는 ExternalInterface.available와 ExternalInterface를 가용성을 테스트 한 은 사전에 감사합니다?

관련 문제