2016-12-21 3 views
-2

Adobe Flash 및 ActionScript 3.0에서 버튼 안에 동영상 클립이 있습니다. 마우스 오버시 전체 무비 클립을 재생하고 싶습니다. 그러나 무비 클립은 마우스가 끝날 때까지만 재생됩니다. 마우스가 있으면 끝까지 무비 클립을 재생하고 싶습니다.마우스로 동영상 클립 전체 재생

도움을 주시면 감사하겠습니다. 블로그를 찾았지만 AS2에만 유효합니다. 이것은 내가하고 싶은 일이지만 AS3의 경우 : EchoEcho

나는 플래시의 멍청한 놈이다. 나는 이런 문제에 대해 무엇을 나누어야할지 모른다. 나는 당신이 인스턴스가 "your_mc"라는 이름의 애니메이션 (라이브러리의 MC라는 이름의 your_symbol가 포함 된 경우

+2

"DownVote"

[/ 편집]. – frankhermes

+0

버튼에는 상태가 있고 마우스를 움직이면 버튼이 '위로'상태로 바뀌어 '오버'상태의 모든 것을 폐기합니다 (재생하려는 클립이 맞다고 추정 됨). 먼저 버튼에서 무비 클립을 당긴 다음 버튼과 클립 동작을 스크립팅해야합니다. – Organis

답변

1

이 ... 간단 을 할 수있는 문제를

감사를 해결하기 위해 필요한 것을 제공하고 동영상 클립이 스테이지에 배치되어있는 경우가

"your_mc"라는 이름의 인스턴스에 트윈을 가지고, 당신은이 클래스 기반하지 않도록주의하십시오.

import flash.display.MovieClip; 
import flash.events.MouseEvent; 

var your_mc:MovieClip = your_mc; 
your_mc.stop() 
var clipStopped:Boolean = true; 
your_mc.addEventListener(MouseEvent.MOUSE_OVER,playStopClip); 
your_mc.addEventListener(MouseEvent.MOUSE_OUT,playStopClip); 
function playStopClip(e:MouseEvent):void{ 
    switch (clipStopped) { 
     case false: 
      clipStopped = !clipStopped; 
      break; 
     case true: 
      clipStopped = !clipStopped; 
      break; 
    } 
    if (!clipStopped){ 
     your_mc.gotoAndPlay(1); 
    }else{ 
     your_mc.gotoAndStop(1); 
    } 
} 

을이 시도 할 수 있으며,로 고려되어야한다 기본 예! 좀 더 구체적인 것을 원하면 질문을 편집하십시오! 여기

정말 기본 예제 : 당신은 제발 뭔가 더 효율적으로하려면

fla file

swf file

이 깨끗하지, 그래서 그냥 귀하의 질문을 편집 할 수 있습니다. 전체 MovieClip을 재생하려면 MC.currentFrame 및 MC.total 프레임을 확인하고 부울 값을 추가하여이를 확인하십시오. 그래서 MC는 애니메이션이 끝나기 전에 멈출 수 없습니다.

감사합니다. 니콜라스

마우스가 끝날 때 끝까지 당신의 무비 클립을 재생합니다 [편집] ...

import flash.display.MovieClip; 
import flash.events.MouseEvent; 
import flash.events.Event; 

var isRunning:Boolean = false; 
var your_mc:MovieClip = your_mc; 
your_mc.stop() 
var clipStopped:Boolean = true; 
your_mc.addEventListener(MouseEvent.MOUSE_OVER,playStopClip); 

function playStopClip(e:MouseEvent):void{ 
    if(clipStopped && isRunning==false){ 
     trace("is Running = " + !isRunning) 
      your_mc.gotoAndPlay(1); 
      clipStopped = !clipStopped; 
      isRunning = true 
      your_mc.addEventListener(Event.ENTER_FRAME,changeStatus); 
    } 
} 
function changeStatus(e:Event):void{ 
    if (your_mc.currentFrame == your_mc.totalFrames){ 
     isRunning = false; 
     clipStopped = true; 
     your_mc.gotoAndStop(1); 
     your_mc.removeEventListener(Event.ENTER_FRAME,changeStatus); 
    } 
    trace(your_mc.currentFrame + "/" + your_mc.totalFrames); 
} 

fla file

swf file

import flash.display.MovieClip; 
import flash.events.MouseEvent; 
import flash.events.Event; 

var isRunning:Boolean = false; 
var your_mc:MovieClip = your_mc; 
your_mc.stop() 
var clipStopped:Boolean = true; 
your_mc.addEventListener(MouseEvent.MOUSE_OVER,playStopClip); 

function playStopClip(e:MouseEvent):void{ 
    if(clipStopped && isRunning==false){ 
     trace("is Running = " + !isRunning) 
      your_mc.gotoAndPlay(1); 
      clipStopped = !clipStopped; 
      isRunning = true 
      your_mc.addEventListener(Event.ENTER_FRAME,changeStatus); 
    } 
} 
function changeStatus(e:Event):void{ 
    if (your_mc.currentFrame == your_mc.totalFrames){ 
     isRunning = false; 
     clipStopped = true; 
     your_mc.stop(); 
     your_mc.removeEventListener(Event.ENTER_FRAME,changeStatus); 
    } 
    trace(your_mc.currentFrame + "/" + your_mc.totalFrames); 
} 

fla file

swf file

더 이상 MouseEvent.MOUSE_OUT는 마지막 프레임으로 동영상 클립을 재생하려는 경우에 사용합니다.

MouseEvent.MOUSE_OVER는 무비 클립 애니메이션이 완료된 경우에만 사용할 수 있습니다.

그래서 당신은 피드백을 제공하지 않았고 질문은 불분명로 : 당신은 당신이 지금 가지고있는 코드를 보여 시작할 수 있습니다

+0

@newron 제발, 질문을 편집하십시오!. 이번에는 "downvote"가 없습니다 – tatactic

+0

어쨌든 플래시가 죽었습니다 : ( – tatactic

+0

LOL, 나는 왜 그렇게 기본적인 대답을위한 "upvote"를 가지고 있는지 모르겠습니다 :) 당신의 의사를 알 수 있습니까? 어쨌든 THX,하지만 이것은 정말로 기본입니다! – tatactic