1

:Loaderインスタンスを追加した後、クリックイベントに問題があります。

var wr:Sprite=new Sprite();
stage.addChild(wr);         
wr.graphics.drawRect(0,0,stage.width,stage.height);
wr.width=stage.width;
wr.height=stage.height;
wr.addEventListener('click',function():void{
    log('CLICKED!');
});
wr.addChild(el.sprite);

問題は、クリックイベントが機能しているのはクリックしているときだけですel.spriteが、ステージ上の任意の場所をクリックすると機能しません(クリックイベントがトリガーされない)。

なぜそれをするのでしょうか?wrステージ全体にレイヤーを伸ばしていませんか?

フラッシュDisplayObjectリストの仕組みに欠けているものや理解できないものは何ですか?

el.sprite(一時停止ボタン)をwr(一時停止レイヤー)の中央に配置し、wrレイヤー全体(ステージ全体)にクリックイベントを適用しようとしています。

私はビデオプレーヤーを開発しています。:)

4

2 に答える 2

1

塗りつぶしを設定していないため、drawRectは実際には何も描画していません。

drawRectの前にこれを追加します:

wr.graphics.beginFill(0xFFFFFF, 0);

これにより、塗りつぶしが0アルファホワイトに設定されます(表示したい場合は、2番目のパラメーターを削除します)。これで、drawRectを呼び出すと、描画するものがあります。

于 2013-03-08T17:01:35.160 に答える
1

Flash APIのGraphicsオブジェクトは本質的に有限状態マシンです。つまり、(1)開始するように指示し、(2)1つ以上の順次コマンドを与えてから、(3)停止するように指示する必要があります。

この場合、不足しているキーは開始コマンドと終了コマンドです。最も単純なのはbeginFill()とendFill()です。完全なリストは、グラフィックスのAS3ドキュメントで確認できます。

beginFill()は2つの引数を取ります。1つ目は塗りつぶしの色で、2つ目は塗りつぶしのアルファです。したがって、塗りつぶしを非表示にする場合は、任意の色(0で構いません)を指定しますが、アルファ値も0にします。

また、補足として、「wr」という名前のオブジェクトの幅と高さを手動で設定する必要はありません。長方形を描画すると、その幅と高さのプロパティは長方形のサイズを反映します。

于 2013-03-08T17:11:51.330 に答える