問題は、ビデオ オブジェクトをステージにアタッチしないことです。my_vid.attachVideo(video);
MovieClip には というメソッドがないため、この行は何もしませんattachVideo
。
ライブラリにビデオ オブジェクトを作成し、ステージに追加する必要があります。これを行うには、IDE で次の手順に従います。
- ライブラリ パネルの右上にある矢印をクリックし
New Video...
、ドロップダウンから選択します。
- ダイアログ ボックスで、
Video (ActionScript-controlled)
ラジオ ボタンを選択し、[OK] をクリックします。
- 新しく作成したビデオ オブジェクトをステージにドラッグし、インスタンス名 (例:
myVideo
) を付けます。
- ステージでビデオ オブジェクトを選択し、F8 キーを押して、そこから新しいシンボルを作成します。
- シンボルを MovieClip に設定し、[ActionScript にエクスポート] チェックボックスをオンにして、識別子 (例:
videoContainer
) を指定し、[OK] を押します。
- ステージからシンボルを削除し、ライブラリに保持します。
これで、コードを使用して添付できるアイテムがライブラリに作成されました。このアイテムには、すぐに使用できるビデオ オブジェクトが既に含まれています。上記と同じ名前を使用したと仮定すると、コードは次のように変更する必要があります。
//attach the container from the library
my_vid = _root.attachMovie("videoContainer", "my_vid" _root.getNextHighestDepth());
//create a reference to the video object inside the container
var video:Video = my_vid.myVideo;
var nc:NetConnection = new NetConnection();
nc.connect(null);
var ns:NetStream = new NetStream(nc);
video.attachVideo(ns);
//
// ...
//
ns.play("http://localhost/video.mp4");