2012-01-17 2 views
0

어떤 이유로 든 goToAndStop (2)을 두 프레임짜리 무비 클립의 두 번째 프레임으로 이동하여 멈추게 할 수 없습니다.AS3 goToAndStop() BUG?

무비 클립을 스테이지의 생성자 함수에 추가하고 있습니다. 다음을 button1의 클릭에 난 ..... 이들의

를 수행해도 문제가 해결되지 않는 .. 프레임이 다시 단추 2의 클릭에 프레임 1에 다음 2 프레임하고

을 변경하지만하고 .. movieclip을 생성자 함수에서 goto frame 2로 설정하면 프레임 2에서 시작됩니다.이 때 button1을 클릭하면 프레임 2에 머물러 있습니다 (즉, 프레임 2로 이동한다고 말함). 그러면 button2를 클릭하면 성공적으로 변경됩니다. 첫 번째 프레임. 그리고 나서 다시 button1을 클릭하면 두 번째 프레임으로 바뀝니다.

생성자 함수에서 _movie.gotoAndStop (2)를 제거하면 다시 작동하지 않습니다.

public function changeBackground($frame:int):void 
{ 
    trace('gotoFrame', $frame); 
    _movie.gotoAndStop($frame); 
    trace('currentFrame',_movie.currentFrame); 
} 

그래서 그것이 올바른 프레임에라고하지만, 그 표시하고 출력을

gotoFrame 1 
currentFrame 1 

를 클릭 단추 2 출력을

gotoFrame 2 
currentFrame 2 

을 Button1을 클릭!

무대

+0

코드가 작동해야합니다. 뭔가 다른 것이 틀림 없습니다. – weltraumpirat

답변

-2

내가 일반적으로 더 바르에 대한 $ 접두사가 함수 또는 클래스에 개인 바르를 들어, 함수에 _를 전달되는 사용하는 경향이 공개 vars, 개인적인 취향에 대한 접두사, 내 코드를 공유하지 않아도 상관 없습니다. 그리고 그것은 FlashDevelop ..와 호환하기 위해 사용하고있는 플렉스의 특정 버전에서 문제가되었다는 것이 드러났습니다. 그리고 빠른 업데이트와 그것 모두는 잘 작동했습니다, 그것이 맞았는지 아니면 다른 객체에 놓쳤는 지 여부는 프레임에 실제로 gotoAndStop인지 아닌지에 대한 것입니다 ....

0

처음에이 클래스의 definatly 단 하나 개의 인스턴스가, 당신의 변수에 $를 제거하십시오. 그들은 가독성을 위해 필요하지 않으며 당신을 천천히 만지게합니다.

둘째, gotoAndStop에 버그가 있다고 가정하지 마십시오. 가능한 한이 방법을 문제없이 사용하는 수천 또는 수백만 개의 플래시 게임이 있습니다. 나는이 말을 꾸짖지는 않지만, 많은 프로그래머들이 유령을 쫓는 것처럼 이것을 기억하기 바란다. 버그는 언어 문제라고 생각한다.

생성자가 프레임을 변경한다고 말하기 때문에 _movie가 버튼과 같지 않다고 생각합니다. _movie의 위치를 ​​변경하여 올바른 객체와 대화하고 있는지 확인하십시오. 또한

이 문제는 단계는 충분히 빨리 무효화되지 수 있기 때문에 : AS3 - gotoAndStop with immediate action

+0

'-1' 관련이없는 처음 두 단락의 경우. 첫 번째 문장에서 '$'를 사용할 때 단점은 없으며 OP의 자체 스타일이기 때문에 완벽하게 괜찮습니다. (물론 프로젝트가 플래시 게임이나 그 비슷한 경우를위한 토대로 공개되지 않는 한 모든 사람이 자신의 눈물을 흘릴 것입니다 머리카락 밖으로). – Marty

+0

@ Marty, 나는 동의하지 않는다. 서식 지정은 분석되는 표현의 언어이므로 매우 중요합니다. 코드는 여기에서 공유되므로 공개됩니다. 모든 분야에서 동료의 문제를 정확하게 표현하는 것이 중요합니다. –

+0

일반적으로 함수에 전달되는 vars에 대해 '$'접두어를 사용하는 경향이 있으며, 함수 또는 클래스 전용 vars에 대해서는 '_'를 사용하고 공용 vars에는 개인 기본 설정에 대한 접두사를 사용하지 않으므로 내 코드를 공유하지 않아도되므로 중요하지 않습니다. . 그리고 그것은 FlashDevelop ..와 호환하기 위해 사용하고있는 flex의 특정 버전에서 문제가되었다는 것이 드러났습니다. 그리고 빠른 업데이트와 그것 모두는 잘 작동했습니다. 실제로 프레임에 gotoAndStop이든 아니든간에 다른 객체에 맞았습니다. ..... – rorypicko

1

확인 먼저 작은 호언 장담 ...

는 또한 AS3에서 gotoAndStop로 몇 가지 심각하게 실망 문제를 발견했다. 스테이지에 해당 무비 클립의 인스턴스가 두 개 이상있는 경우 무비 클립의 올바른 프레임을 렌더링하는 데 문제가있는 것으로 보입니다. 해당 프레임의 객체를 참조하는 코드가 제 시간에 렌더링되지 않을 수도 있지만, 다음 프레임이 렌더링 된 후 모든 클립에 프레임에있는 내용이 표시되어야합니다.타임 라인 영화 클립 인 플래시의 기본 개념 중 하나가 as3에서 100 % 작동하지 않는 것 같습니다. 내가 유용한 답변을 희망 지금

...

나는이 (무대에 숨기거나 단지의 코드에서 생성 된 소스 이미지 무비 클립 클래스를 사용하는 것입니다 라운드 얻는 것을 처리 한 유일한 방법 도서관). 그런 다음 하나의 무비 클립에서만 gotoAndStop을 사용하고, 필요한만큼 여러 번 BitmapData 클래스를 사용하여 그려야하며, 필요한 이미지를 이러한 표시 객체에 추가 할 수 있습니다.