答えをクリックすると、選択したものに関連する短いアニメーション FLV ファイルが再生される仕事用のクイズ タイプのアニメーションを作成しています。私が読んだすべてが AS3 が OOP であることを示しているので、FLV プレーヤーを含む MovieClip を作成し、それを FLV_Player.as という AS3 ファイルにリンクすることにしました。そうすれば、ビデオを再生する必要があるたびに、FLV_Player の新しいインスタンスを作成できます。これは、正常に動作するように見えるそのファイルのコードです。
package
{
import fl.video.VideoEvent;
import flash.events.VideoEvent;
import flash.display.MovieClip;
public class FLV_Player extends MovieClip
{
public function FLV_Player(NextVideo:String)
{
animation_player.source=(NextVideo);
animation_player.addEventListener(VideoEvent.COMPLETE, vcompleted);
}
private function vcompleted(e:VideoEvent):void
{
nextFrame();
}
}
}
DocumentClass.as ファイルには、次のコードがあります。
private function NewVideo(videoname:String)
{
var nextvideo:FLV_Player = new FLV_Player(videoname);
addChild(nextvideo);
nextvideo.x = 0;
nextvideo.y = 0;
}
ボタンをクリックすると、次のフレームに移動するか、プロンプトが何であれ、NewVideo 関数が呼び出され、次に再生されるビデオの名前が渡されます。
NewVideo("Introduction.flv");
今、私が行ったことがどのように行われるべきかどうか本当にわからないので、後で他の問題に遭遇することになると確信していますが、この時点で私が抱えていると思われる唯一の問題時間内にビデオを削除し、次の(または前の)フレームに移動して別の質問に答えます。私は試した:
nextFrame();
removeChild(newVideo);
しかし、うまくいきませんでした。次のフレームに移動した可能性がありますが、ビデオがウィンドウ全体を占めているため、移動したかどうかを確認するのは困難です。
では、作成したビデオを削除するにはどうすればよいですか? 主な問題は、プライベート関数で FLV_Player クラスの新しいインスタンスを作成する必要があったため、子が「パブリック」または「プライベート」var ではなくローカルに「var」で定義されているため、再度参照できないことです。 . ドキュメントクラス内からのみ「プライベート変数」を作成できることがわかりますが、そこに作成すると、ビデオ名パラメーターを渡す準備ができたときに関数からではなく、ロード時にクラスが作成されます。ロード時にどのビデオを再生する必要があるかわかりません。