2015-01-15 3 views
0

저는 플래시 신입 사원이기 때문에 간단한 문제이거나 수정하는 경우 사과드립니다. 어쨌든 일부 기능에 문제가 있습니다. 사운드 채널을 멈추려는 함수에서만 오류 1009가 발생합니다. 다음은 코드의 일부입니다.Flash AS3 - SoundChannel 오류 # 1009

이것은 내 채널을 설정하는 첫 번째 장면의 첫 번째 프레임입니다. 내 모든 소리는 여기서도 끝났지 만 나는 그 소리가 문제라고 생각하지 않는다.

import flash.media.Sound;
import flash.media.SoundChannel;

var musicChannel:SoundChannel = new SoundChannel();
var speechChannel:SoundChannel = new SoundChannel();
var sfxChannel:SoundChannel = new SoundChannel();

그리고 여기에는 1009 오류를 발생시키는 버튼 중 하나의 예 :

function goHome(e:MouseEvent):void {
speechChannel.stop();
sfxChannel.stop();
musicChannel.stop();
gotoAndPlay(2, "TitleScreen")
}

home.addEventListener(MouseEvent.CLICK, goHome);

이제 정말로 나를 혼란스럽게하는 것은이 같은 코드가 내 컴퓨터에 지난 밤에 완벽하게 실행한다는 것입니다. 내 대학에서 컴퓨터에서 .swf를 테스트하고 애니메이션이 얼어 붙어서 플래시로 체크인했는데 이것이 내가 얻은 것입니다.

일부 TweenMax 항목에서도 동일한 1009 오류가 표시됩니다. 그리고 예 필요한 모든 것을 가져 왔으며이 기능을 실행하는 데 필요한 모든 파일은 .fla 파일의 루트 디렉토리에 있습니다. 나는이 사실을 알고 있습니다. 왜냐하면 다른 오류와 마찬가지로,이 물건들은 제 컴퓨터에서 집에서 완벽하게 작동했기 때문입니다. 내 컴퓨터에 저장 한 똑같은 .fla 파일과 코드 파일을 실행하고 있으며 내 PC에서와 마찬가지로 내 .fla와 같은 디렉토리에 'com'폴더와 'greenstock'swc 파일이 있지만, 이와 함께 1009을보고 m의 스틸 링 :

import com.greensock.TweenLite;
import com.greensock.TweenMax;

TweenMax.to(musicChannel, 2, {volume:0});

가 다시이 선 사운드 채널을 참조하고, 그래서는 이러한 문제의 근본의 99 % 확신합니다. 이 코드 조각에서 'musicChannel'을 'Music1'(채널의 첫 번째 프레임에서 선언 된 사운드)으로 바꿀 수 있으며 음악을 멈추게 할 때마다 사운드 채널을 막으려 고 시도 할 때마다 내게 쓰러집니다.

다시 고칠 수 있으면 정말 죄송하지만 어젯밤에 제대로 작동했기 때문에 매우 혼란 스럽습니다. Flash Player는 구식이 될 수 있지만 Adobe Flash Player 11이므로 문제가되는지는 알 수 없습니다. 지금은 대학에 다니고있어서 집에 어떤 버전이 있는지 모릅니다.

감사합니다.

답변

-1

SoundCahnnel은 null 일 수 있으며 해당 속성을 트위닝 할 수 없습니다. 이 처리하는 쉬운 방법은 그들이 여부를 확인하는 것입니다 널 여부 :

if(musicChannel) 
{ 
    TweenMax.to(musicChannel, 2, {volume:0}); 
} 

또한의 SoundChannel 객체를 인스턴스화 할 필요가 없습니다 있도록 Sound 객체의 재생 메서드를 호출 할 경우에만 생성됩니다

var musicChannel:SoundChannel = new SoundChannel();//irrelevant piece of code 
var musicChannel:SoundChannel;//correct 
+0

아이 작품! 신속하고 유익한 답변 과우 감사합니다! 많은 것을 고맙게 생각합니다! – Dan