作者cjcat2266 (CJ Cat)
看板Flash
标题Re: [问题] 是否有判断动画是否播放中的语法?
时间Mon Oct 8 00:34:56 2007
※ 引述《allpassXD ()》之铭言:
: flash中是否有语法能判断动画是否正被播放中
: 我想写在if的判断式里面
可以自己从MovieClip这个class来extend一个自订class
我取的名称是MonitoredMovieClip
然後直接override掉原本的play()和stop()
以後只要呼叫isPlaying就可以知道这个MC到底有没有在播放
(记得要在symbol linkage那边的class栏位打上MonitoredMovieClip)
只是如果是在该MC内部执行play()和stop()
记得使用this.play()和this.stop()
(我个人习惯是不管哪个MC里面都打this)
※後半段还有override其他method
诸如gotoAndStop(), gotoAndPlay(), nextFrame(), prevFrame()
都很类似play()和stop()的override方式,就请自行看罗
-------------------<以下为MonitoredMovieClip.as的内容>--------------------
class MonitoredMovieClip extends MovieClip{
//纪录播放状态,预设为"PLAYING"
private var _playbackStatus:String = "PLAYING";
//P.S.我习惯private property用底线开头取名字
//取得播放状态用的getter
public function get isPlaying():Boolean {
if (_playbackStatus == "PLAYING") {
return true;
} else if (_playbackStatus == "STOPPED") {
return false;
}
}
//override原本的play()
public function play():Void {
//呼叫原本的play()
super.play();
_playbackStatus = "PLAYING";
}
//override原本的stop()
public function stop():Void {
//呼叫原本的stop()
super.stop();
_playbackStatus = "STOPPED";
}
//以下的code就大同小异
public function nextFrame():Void {
super.nextFrame();
_playbackStatus = "STOPPED";
}
public function prevFrame():Void {
super.prevFrame();
_playbackStatus = "STOPPED";
}
public function gotoAndStop():Void {
super.gotoAndStop();
_playbackStatus = "STOPPED";
}
public function gotoAndPlay():Void {
super.gotoAndPlay();
_playbackStatus = "PLAYING";
}
}
--
CJ Cat = Croa'J Cat = Cockroach Cat = 西街凯特 = 蜚蠊猫 = 蟑螂猫
Gallery
http://cjcat2266.deviantart.com
ptt2 Board CJWorkshop - 阿多比闪光(Adobe Flash)研讨区
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.228.81.93
※ 编辑: cjcat2266 来自: 61.228.81.93 (10/08 00:40)
1F:推 aquarianboy:推override :) 10/08 01:07
2F:推 etrexetrex:太热血了 一个问题就做出一个类别 快拜阿 <(_ _)> 10/08 02:24
3F:推 mooder:推~~ 10/08 10:16
4F:推 cjcat2266:以後需要extend MC就从这个class继续extend就好了呀 :) 10/08 15:05
5F:推 allpassXD:感谢推~ 10/08 18:26