0

更新:これは実際の問題ではありません。たまたま SimpleButton の高さと同じ Y 位置にある別のスプライトが作成され、alpha=0 に設定されていたことが明らかになりました。これにより、ボタンとの相互作用が妨げられていました。皆さんの考えに感謝します。質問を締め切ります。


ステージに配置している SimpleButton があります。私は、hitArea を壊したり変更したりする Y 位置に設定すると、さまざまなことを行っています。

var playUp:Bitmap = getBitmap('play_up');
var playDown:Bitmap = getBitmap('play_down');

var Y:Number = 100;

_playButton = new SimpleButton(playDown, playUp, playDown, playDown);
_playButton.addEventListener(MouseEvent.CLICK, playClick);
_playButton.x = (640 / 2) - (_playButton.width / 2);
_playButton.y = Y;
_playButton.name = "playButton";
var shadow:DropShadowFilter = new DropShadowFilter();
shadow.distance = 5;
shadow.angle = 25;
shadow.alpha = 0.5;
shadow.blurX = 8;
shadow.blurY = 8;
_playButton.filters = [shadow];
addChild(_playButton);

ボタンが完全に機能する行を削除すると、_playButton.y = Y;ヒット領域がボタン全体をカバーします。
設定var Y:Number = playDown.height;すると、ロールオーバーしたり、ボタンをクリックしたりできなくなります。
設定var Y:Number = playDown.height - 10;すると、ボタンの上部 10px のみがアクティブになり、クリックして上部 10px をロールオーバーできます。

ボタンを別のスプライトでラップして、含まれているスプライトを移動しようとしましたが、まったく同じ動作になります。

var playUp:Bitmap = getBitmap('play_up');
var playDown:Bitmap = getBitmap('play_down');

var Y:Number = 100;

_playButton = new SimpleButton(playDown, playUp, playDown, playDown);
_playButton.addEventListener(MouseEvent.CLICK, playClick);
_playButton.x = (640 / 2) - (_playButton.width / 2);
_playButton.y = Y;
_playButton.name = "playButton";
var shadow:DropShadowFilter = new DropShadowFilter();
shadow.distance = 5;
shadow.angle = 25;
shadow.alpha = 0.5;
shadow.blurX = 8;
shadow.blurY = 8;
_playButton.filters = [shadow];

var holder:Sprite = new Sprite();
holder.addChild(_playButton);
addChild(holder);
4

2 に答える 2

1

ライブラリ内の Actionscript 用にエクスポートされた 2 つの画像を使用すると、これは正常に機能します。

var playUpBMPD:BitmapData = new PlayUp(200, 40);
var playDownBMPD:BitmapData = new PlayDown(200, 40);
var playUp:Bitmap = new Bitmap(playUpBMPD);
var playDown:Bitmap = new Bitmap(playDownBMPD);

var Y:Number = 100;

var _playButton:SimpleButton = new SimpleButton(playDown, playUp, playDown, playDown);
_playButton.x = (640 / 2) - (_playButton.width / 2);
_playButton.y = Y;
_playButton.name = "playButton";
var shadow:DropShadowFilter = new DropShadowFilter();
shadow.distance = 5;
shadow.angle = 25;
shadow.alpha = 0.5;
shadow.blurX = 8;
shadow.blurY = 8;
_playButton.filters = [shadow];

addChild(_playButton);

getBitmap は何をしますか? また、Y はコード内の他の場所で使用されていますか?

于 2010-02-09T18:20:47.130 に答える
1

これまでに SimpleButton を使用したことはありませんが、約 10 分間の Google 検索から得た情報は次のとおりです。ボタンを移動するたびに、ボタンの hitState、upState、downState などの場所を手動で変更する必要がある場合があります。次の例では、ボタンの hitState などがステージ上の特定の場所に描画されているように見えます。

http://weblog.cahlan.com/2006/07/simplebutton-class-in-actionscript-30.html

また、SimpleButton リファレンス ページの例でも、実際に hitState の場所を設定しているように見えます。

http://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/flash/display/SimpleButton.html

(私が完全に間違っている場合はお詫び申し上げます。)

于 2010-02-09T18:22:12.507 に答える