2016-12-21 14 views
-2

Adob​​e FlashおよびActionScript 3.0では、ボタン内にムービークリップがあります。マウスの上にムービークリップ全体を再生したい ただし、ムービークリップは、マウスが終了するまで再生されません。マウスがあれば最後までムービークリップを再生したい。ムービークリップをマウスで完全に再生

何か助けていただければ幸いです。 私はブログを見つけましたが、AS2のみで有効です。これは私がしたいことですが、AS3の場合:EchoEcho

私はフラッシュのためのnoobです。私はこの種の問題を分かち合うべきか分かりません。あなたのアニメーションが含まれている「your_mc」という名前のインスタンス(ライブラリ内のMCという名前your_symbolを持っている場合、私はそれを簡単にするために、問題に

おかげ

+2

「DownVote」

[/ EDIT]。 – 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はアニメーションが終了する前に停止できません。

よろしくお願いいたします。 ニコラス

[EDIT] マウスが終わったときには、最後にあなたのムービークリップを再生します...

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

関連する問題