AS3 でのビデオ接続用に標準の NetStream があります。
コード:
public class VideoInit extends MovieClip
{
import flash.media.Video;
import flash.net.NetConnection;
import flash.net.NetStream;
import flash.events.NetStatusEvent;
public var video:Video;
public var nc:NetConnection;
public var ns:NetStream;
public var meta:Object;
public var _duration; // <----- the variable
public function VideoInit()
{
video = new Video(480,270);
addChild(video);
nc = new NetConnection();
nc.connect(null);
ns = new NetStream(nc);
meta = new Object();
ns.client = meta;
video.attachNetStream(ns);
ns.play("video.f4v");
meta = new Object();
meta.onMetaData = function(meta:Object) // <---- the method
{
_duration = meta.duration
}
ns.client = meta;
}
これで、onMetaData メソッドが実行されるたびに、変数 _duration に値が格納されますが、デバッガー ステップがメソッドを終了した直後に、_duration 値が unindentified に戻されます。値をプッシュすることで、Array を回避しようとしましたが、同じことが起こり、Array がリセットされます。何が間違っている可能性がありますか?
編集:
継続時間の値を格納するオブジェクトは、onMetaData が完了するとすぐに破棄されます。どのように実装するかは問題ではありません。