2011-02-23 11 views
0

背景ビデオプレーヤーのボタンコンポーネントにボタンのような動作を追加するにはどうすればいいですか?

私は、ビデオとオーディオの再生のために同じユーザーインタフェース(またはできるだけ同じ)を提示し、単純な「ユニバーサル」メディアプレーヤーを作成しようとしています。残念ながら、FLVPlaybackは私が知る限りオーディオファイルを扱うことができないと思われるので、SoundとSoundChannelを使用しています。

私のビデオ再生は、必要に応じてオンザフライで標準のコントロールに「配線」されたFLVPlaybackコンポーネントを使用して処理されます。私がしたいことは、同じUIウィジェットが両方のケースで動作するようにサウンドを再生しているときにSound/SoundChannelに配線することです。私はFLVPlaybackコンポーネントが "無料で"素敵なものをたくさん持っているので、最初からすべてのコンポーネントを構築しないようにしたいと思っていますが、それはやりにくく見え始めています。

ゴーレイスタッフ

標準PlayPauseButtonは、二つの層、再生ボタン(およびインスタンス名play_mc有する)とを含む一時停止ボタン(pause_mc)を含むものとムービークリップです。これらの中には、次のようなコードの映画があります。

stop(); 
this.upLinkageID = "PauseButtonNormal"; 
this.overLinkageID = "PauseButtonOver"; 
this.downLinkageID = "PauseButtonDown"; 
this.disabledLinkageID = "PauseButtonDisabled"; 

ムービーには2つのフレームがあります。

最初のフレームには、インスタンス名placeholder_mcを持つ1つのムービークリップがあります。

2番目のフレームではボタン状態のインスタンスですが、インスタンス名はありません(これにより作業が簡単になります)。ただし、これらは上記の名前のライブラリオブジェクトのインスタンスです。

私がしたいのは、これらのボタン(pause_mc、say)の1つを渡すと自動的にボタンのような動作が追加されるという関数を作成することです。私がアドビの「ドキュメンテーション」から理解できないことは、ムービークリップコードに埋め込まれた情報を使って、placeholder_mcの内容を私が望むものに交換する方法です。

TL、本質的にはDR

私は期待通りに以下のコードは、ボタンの表示状態を変更するように機能SET_INSTANCEを実装する必要があります。

var my_button:MovieClip = pause_mc; 
my_button.addEventListener(MouseEvent.MOUSE_OVER, function(e:Event){ 
    set_instance(my_button.placeholder_mc, my_button.overLinkageID); 
}); 

答えて

1

私はこれを今日PlayPauseButtonコンポーネントを使用して動作させようとしました。アドビは、私たちが探し求めているフックを公然と公開していないようです:P。

私が思いついた解決策は、Button UIコンポーネントを使用して、PlayPauseButtonのように再スキンすることでした。

PlayPauseButtonコンポーネントに含まれている2つのムービークリップ(再生および一時停止)から個々のボタン状態を掘り出し、インスタンス名を付けてから、setStyle()メソッドを使用してボタンの適切なスキンプロパティを設定できます。ストレッチを避けるために、ボタンのサイズを23x23に変更してください。

+0

私はずっと前のプレーヤーを同様のラインに沿って実装しました。私はこの質問を部分的には暴言として掲示しました(AS3クラスのライブラリは、この点で絶対にひどいですが、これは恐ろしいAS2クラスライブラリの「緑のフィールド」の書き換えでもあります)。そして、誰かが私にいくつかの節約できる作業... – podperson

0

私は通常ちょうどボタンを作成し、

var myButton:Button = new Button(); 
myButton.setStyle('upSkin', new PlaySkin()); 
myButton.setStyle('selectedUpSkin', new PauseSkin()); 

これで、ムービークリップまたは一部の表示オブジェクトをスキンとして割り当てることができます。 Flashによって自動的に処理されます。 PlayPauseボタンの場合、ボタンの "toggle"プロパティを "true"に設定し、クリックするたびにボタンが選択されたスキンから上のスキンに切り替わり、再び元に戻ります。

+0

あなたは質問に答えていません。私はボタンを動作させる方法を知っています。どのようにするかわからないのは、ビデオプレーヤーに関連するボタンコンポーネントを動作させることです。ボタンは、FLVPlaybackコンポーネントに「フックアップ」してもうまく動作しますが、FLVPlaybackコンポーネントが何をしているかについてはわかりません。 – podperson

関連する問題