2013-07-14 4 views
1

그래서 링크로 사용할 수있는 무비 클립 형태의 애니메이션 버튼이 있습니다. 무비 클립은 온라인에서 찾은 스크립트를 사용하여 마우스 오버 및 마우스 오프를 통해 애니메이션으로 표시되며 완벽하게 작동합니다. 그러나 무비 클립을 링크로 사용하기위한 간단한 actionscript 명령을 만들려고하면 다음 오류가 발생합니다.Flash CS5 액션 스크립트 3.0 무비 클립을 링크가있는 버튼으로 사용하기

TypeError : 오류 # 1009 : null 속성 또는 메서드에 액세스 할 수 없습니다. 객체 참조. at PheV3_fla :: MainTimeline/frame185()

온라인으로 찾은 모든 자습서는 제대로 작동하는 것처럼 보이는 동영상 클립 대신 '버튼'유형의 링크를 사용하지만이 동영상이 필요합니다. 애니메이션 클립. 다음은 내가 사용하고있는 코드입니다.

import flash.events.MouseEvent 
import flash.net.URLRequest 

MixesButtonTop.addEventListener(MouseEvent.CLICK, fl_ClickToGoToWebPage_2); 

function fl_ClickToGoToWebPage_2(event:MouseEvent):void 
{ 
    navigateToURL(new URLRequest("http://www.adobe.com"), "_blank"); 
} 

무비 클립 버튼 자체 안에있는 기호 중 하나를 참조해야합니까? 나는이 모든 것에 매우 익숙하다. 그래서 나는 무엇이라도 놓치면 알려 줘서 고마워.

+0

컴파일러는 무언가에 대한 참조가 없다는 것을 알려줍니다. 나는 이것이 귀하의 버튼이 없다는 것을 의미한다고 가정합니다. 버튼 (movieclip?)은 어디에 있고 스크립트는 어디에 있습니까? 편집 : 클래스 이름 MixesButtonTop와 함께 귀하의 라이브러리에 영화 클립이있는 것 같습니다. 타임 라인에 배치하거나 var b를 사용하여 스크립트로 인스턴스를 만들어야합니다. MovieClip = new MixButtonTop(); – Fygo

+0

빠른 응답을 보내 주셔서 감사합니다! 나는 "MixesButtonTop.buttonMode = true;"라는 줄을 추가했다. 무비 클립이 타임 라인에 존재하지만 "var b : MovieClip = new MixButtonTop();" 그리고 내가 다시 돌아올거야 – user2581839

+0

그래서 위에서 언급 한 라인을 추가하고 새로운 오류 "장면 1, 레이어 '작업', 프레임 184, 라인 4 \t 1180 : 아마도 정의되지 않은 MixesButtonTop 메서드를 호출하십시오." – user2581839

답변

0

속성 탭 아래에 인스턴스 이름을 지정하고 라이브러리에서 호출되는 방식이 아니라 해당 이름으로 인스턴스 이름을 참조해야합니다. 필요한 작업을 수행하려면

  1. 스테이지에서 버튼 인스턴스를 선택합니다.
  2. [창]> [속성]을 선택하고 [인스턴스 이름] 상자에 이름을 입력하십시오.

예를 들어 인스턴스 이름을 MixesButtonTop으로 설정합니다. 그런 다음 코드에 다음과 같이 변수를 선언해야합니다.

var buttonMC:MovieClip = MixesButtonTop; 

그러면 문제가 해결됩니다.

+0

인스턴스 이름이 있었지만 문제가 무엇인지 알아 냈습니다. 다른 누군가가이 문제를 가지고있는 경우에 해결책을 게시 할 것입니다. 분명히 사용하고있는 트윈의 시작 객체와 최종 객체가 모두 필요합니다. 동일한 인스턴스 이름을 가짐. – user2581839

0

단추가 타임 라인에있는 경우 인스턴스 이름을 지정해야합니다 (jfgi의 응답 참조). 이 인스턴스 이름으로 코드에서 참조 할 수 있습니다. 변수에 할당 할 필요는 없습니다 (jfgi가 작성한 것과는 달리). 변수에 할당하고 유형 (: MovieClip)을 추가하면 Flash IDE로 작업하는 경우 코드 힌트가 유용합니다. IDE는 기호가 어떤 유형인지 알 수 없습니다. 참고 : 라이브러리의 심볼 이름은 '클래스 이름'(링크)입니다. 클래스 이름을 사용하여 클래스의 명령 및 INSTANCE를 사용할 수 없습니다. 변수를 변수에 할당하거나 속성 창에 인스턴스 이름을 지정해야합니다. 라이브러리의 심볼을 스테이지에 수동으로 배치하고이를 제어하려는 경우 항상 인스턴스 이름을 추가해야합니다. ('항상'... 참조를 검색 할 수있는 다른 방법 (예 : getChildAt 등)이 있으므로)

답변으로 게시해야했지만 댓글이 너무 길었습니다.

관련 문제