2010-03-31 3 views
0

을로드합니다.사용하여 이벤트 나 다른 외부 SWF의 FLV 내용이 재생이 종료되면로드 외부 SWF를 얻으려고 새 외부 SWF

나는 단지 일주일 정도 actiosncript 3 사용하고 난 나의 지식은 제한되어, 자습서에서이 점에있어.

코드를 외부 SWF에 대한 (FLV 함량) :

은 내가 지금까지있어 무엇

import fl.video.FLVPlayback; 

import fl.video.VideoEvent; 



motionClip.playPauseButton = player; 
motionClip.seekBar = seeker; 




motionClip.addEventListener(VideoEvent.COMPLETE, goNext); 



function goNext(e:VideoEvent):void { 

nextFrame(); 

} 

그리고 이것은 주요 파일에 대한 코드입니다

var Xpos:Number=110; 
var Ypos:Number=110; 
var swf_MC:MovieClip = new MovieClip(); 
var loader:Loader = new Loader(); 

var defaultSWF:URLRequest = new URLRequest("arch_reel.swf"); 

addChild (swf_MC); 
swf_MC.x=Xpos 
swf_MC.y=Ypos 

loader.load(defaultSWF); 
swf_MC.addChild(loader); 
//Btns Universal Function 
function btnClick(event:MouseEvent):void{ 
SoundMixer.stopAll(); 
    swf_MC.removeChild(loader); 

    var newSWFRequest:URLRequest = new URLRequest("motion.swf"); 
    loader.load(newSWFRequest); 
    swf_MC.addChild(loader); 


} 
function returnSWF(event:Event):void{ 
    swf_MC.removeChild(loader); 
    loader.load(defaultSWF); 
    swf_MC.addChild(loader); 
} 
//Btn Listeners 
motion.addEventListener(MouseEvent.CLICK,btnClick); 

swf_MC.addEventListener(swf_MC.motionClip.Event.COMPLETE,swf_MC.motionClip.eventClip, returnSWF); 

나는이 모든 작동 방식에 대한 이해를 얻을 시작 해요,하지만 지금 나에게 새로운 모든, 그래서 내가 잘못 각도에서 접근 한거야.

어떤 도움을 내가 지금 몇 일 동안이에 노력했습니다로서, 환상적 일 것입니다. 아마 여기에 몇 가지 문제지만 아주 명백한있다

감사

+0

아차 - 나는 외부 SWF 파일의 코드 조금 떨어져 왼쪽 깨달았다 : 정지() ; 기능 eventClip (예 : 이벤트) : 무효 { } – wdense51

답변

0

는 당신이 바로 그 장소에 리스너를 추가하지 않는 것이다.

A.swf가 있고로드 된 B.swf의 타임 라인을 청취하려는 경우 이벤트를 버블 링하지 않으면 리스너를 타임 라인에 직접 추가해야하며 컨테이너 나 로더에는 추가 할 필요가 없습니다.

A.swf

var loader:Loader = new Loader(); 
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onSWFLoaded); 
loader.load(new URLRequest("B.swf")) 

function onSWFLoaded(e:Event):void 
{ 
    var loaderInfo:LoaderInfo = e.target as LoaderInfo; 

    // cleanup the expired event listener 
    loaderInfo.removeEventListener(Event.COMPLETE, onSWFLoaded); 

    // since the SWF is now loaded you can add a listener to it's timeline ('content') 
    loaderInfo.content.addEventListener("VideoComplete", onVideoComplete); 

function onVideoComplete(e:Event):void 
{ 
    // do something here ;) 
} 

B.swf

// ... your code ... 

    video.addEventListener(VideoEvent.COMPLETE, onVideoComplete); 

    function onVideoComplete(e:Event):void 
    { 
     // Notifies A.swf that the playback is finished ("VideoComplete" is just custom event, up to you to improve ...) 
     dispatchEvent(new Event("VideoComplete")); 
    } 
+0

신난다! 모두 완료되었으며 완벽하게 작동합니다. 정말 고마워요. 액션 스크립트 3이 어떻게 의사 소통을하는지 알기 시작했지만 제대로 실행하기에 충분한 배경 ​​지식이 없으므로 정말 실망스러워합니다. 다시 한번 감사드립니다. – wdense51

+0

위대한;) 그 때 받아 들여지 는가? (나의 작은 보상) –

관련 문제