ASMovieClip

  • FlashのMovieClip?クラスはどちらかというとデベロッパー向けではなくデザイナー向け
  • ASで扱うことができるメソッドは、再生するかしないかくらいで、フレームを構築出来ない
  • そんなわけで、MovieClip?の機能を自前で作りつつ、フレームの構築もできるようにしたのがこのクラスです。

バージョン

0.1

ライセンス

Licensed under the MIT License

ダウンロード

svn : http://www.libspark.org/svn/as3/ASMovieClip/
archive : http://www.libspark.org/svn/as3/ASMovieClip/ASMovieClip.zip

ソースコードをダウンロード、使用することでライセンスに同意したものとします。

注意

  • デバッグはできるだけやっていますが、まだまだ十分ではないのでバグがでる可能性はあります。
  • まだバージョンも低いので、もし何かバグが発見されましたら、チケットなり、Twitterの@Hiiragi3にダイレクトメッセージなりで教えてください(つぶやきだと見逃してしまうかも)。

使い方

ASDocを作ってるので、詳細はそちらを参照していただければと思います。

ASMovieClipは、基本的にMovieClip?と同等の機能を持ってるので、MovieClip?を扱う要領で扱うことが出来ます。

var asmc:ASMovieClip = new ASMovieClip();
this.addChild(asmc);

で、フレーム追加したいとき、削除したいときは

addFrame(displayObject:DisplayObject, frameNumber:uint = 0, labelName:String = null, displayNow:Boolean = false)
addFrames(displayObjects:Array, frameNumber:uint = 0, displayNow:Boolean = false)

removeFrameAt(frameNumber:uint, onlyDisplayObjectDelete:Boolean = false)
removeAllFrames()

を使います。ラベルだけを変更したい場合は

addLabelAt(frameNumber:uint, labelName:String)
removeLabelAt(frameNumber:uint)

指定フレームの表示オブジェクトを参照したい場合は

getFrameAt(frame:Object)

以上がフレームの表示オブジェクトを扱うメソッドになります。フレーム移動を制御するメソッドはMovieClip?とほぼ変わりません。唯一、gotoAndReversePlayというオリジナルメソッドを追加してます。

gotoAndPlay(frame:Object, isLoop:Boolean = false, enterFrameDelayTime:uint = 0)
gotoAndReversePlay(frame:Object, isLoop:Boolean = false, enterFrameDelayTime:uint = 0)
gotoAndStop(frame:Object)
play(isLoop:Boolean = false, enterFrameDelayTime:uint = 0)
stop()	
prevFrame()
nextFrame()

また、フレームの現在の状況を知りたいときは

getFramesInformation()

を呼ぶと、ASMovieClipオブジェクトの現在のステータスをリストアップしたStringが返ってきます。

フレーム移動のトリガーは、ENTER_FRAMEイベントではなく、内部のTimerを使ってます。ですので、本体のフレームレートとは別のフレームレートを扱うことが出来ます。

enterFrameDelayTime = 500;	//500ms毎にフレーム移動

おまけクラス

FrameAnimation?クラスというのを作成しました。外部画像ファイルなどを一気に読み込んでコマアニメを生成するのに特化したクラスです。ASDocにサンプルを掲載してますので、使い方はそちらの方でご確認ください。

FrameAnimation?はASMovieClipを継承してるので、フレーム制御等も行うことが出来ます。

サンプル

準備中

コミッタ

  • Hiiragi