とある仕事でflvを使った仕事をさせていただいたのですが、
いくぶんflash自体そこまで詳しくないのでflvの終わり判定で
こまった。
困ったらヘルプということでflashのヘルプをみてみたら・・・
普通にのってるじゃないか・・。
NetStreamクラスのインスタンスにNetStatsuEvent.NET_STATUSイベントを登録。
これでvideoが始まったり終わったり止められたりしたときにイベントを発動。
theNetStream.addEventListener(NetStatusEvent.NET_STATUS, statusHandler);
function statusHandler(event:NetStatusEvent):void {
trace(event.info.code); //info.codeで情報を監視する
}
これを行うとvideo に関する情報が色々とでてくるので
videoの終わる時に出てくる判定が“NetStream.Play.Stop”だそうです。
そこでこれをswitch文で拾ってやってれば大丈夫です。
あ、switch文じゃなくても普通にif文で拾ってあげてもいいのですが
ヘルプにのっていたのと、videoが始まったときにもイベントを拾えるので。。
function statusHandler(event:NetStatusEvent):void
{
switch (event.info.code)
{
case "NetStream.Play.Start":
trace("Start [" + theNetStream.time.toFixed(3) + " seconds]");
break;
case "NetStream.Play.Stop":
trace("videoが終わったぁ〜〜よ!!");
break;
}
}
Tweenerを今までいろいろと使わせていただいたのだけれども、
どうにも動きがぎこちなかったり大量のオブジェクトを動かすと
ガタガタしてしまうのでTweenMaxを試しに使ってみた。
おお、Tweenerのギコチなさがなくなった。。
TweenMax良いのでは?
ということで基本的な使い方。
GreenSock
からダウンロード、解凍したgsファイルをclassフォルダにいれてください。
import gs.*;
で読み込み。
例:
TweenMax.to(対象のオブジェクト, スピード, {プロパティー}); //基本的にガーベッジコレクトの対象になります。
もしtarget_mcのxの値を1秒間に10pix動かしながらブラーをかけるとしたら
TweenMax.to(target_mc, 1, {x:10, blurFilter{blurX:5, blurY:5} });
検証はしてませんがこれで動きます。
うごかなかったらなにかスペル間違えてます。。
さらに、モーション1が終わったらモーション2という動作ですが、
TweenerだとonCompleteでおこなわなければいけなかったんですが、
どうやらこれだと少しだけ時差ができるとのこと。
これをTweenMaxだと時差なく、さらにfuseKitのように動作するとのこと(fuseKitあまり使ったことないので詳しくないのですが。。)例えば
一つの対象オブジェクトに連続で動作させたい場合TweenMax.sequenceを使う。
例(xに200移動した後にアルファを0にする)
TweenMax.sequence(target_mc, [{time:1, x:"200"}, {time:1, autoAlpha:0}]);
複数のオブジェクトを連続で動作させたい場合TweenMax.multiSequenceを使う。
例
TweenMax.multiSequence([{target:target1_mc, time:1, x:"200"}, {target:target2_mc, time:2, autoAlpha:0}]);
さらにさらに、
すべてのmcの動作をいっぺんにおこないたい場合(動作が同じ場合)TweenMax.allToを使う。
例
TweenMax.allTo([mc1, mc2, mc3, mc4, mc5], 1, {y:”100″, alpha:0, delayIncrement:0.2});
とにかくTweenMax使いがってもいいし、軽いですよ。まだまだいろいろなプロパティーや
使い方があるのでのちのちここで書けたらいいな。ま、どうでもいいけどブログ読みずれぇ!!