0

Flash と Actionscript は初めてです。C# プログラムから開始されるムービーがあります。ムービーでは、さまざまなテキスト フィールドを作成し、データを C# プログラムに渡しています。また、クリックするとポップアップする小さなメニューを作成したいというホットスポットもあります。これを行うためのいくつかの方法を調べた結果、これを行う最も簡単な方法 (またはそう思った) は、ホットスポットのすぐ下にいくつかのボタンを作成することであると判断しました。ホット スポットをクリックすると、何らかの理由でボタンがステージに表示されません。メッセージを表示するので、ボタンを作成するルーチンを実行していることがわかります。私は自分のコードを投稿しました。助けてくれてありがとう!!

import flash.text.TextField;
import fl.controls.Button; 
import flash.events.Event;

hotSpot.addEventListener(MouseEvent.CLICK, showMenu);

var continueBtn:Button;
var exitBtn:Button;

function showMenu(evt: Event):void
{
    continueBtn = new Button();

    continueBtn.x = 20;
    continueBtn.y = 100;
    continueBtn.width = 30;
    continueBtn.height = 20;
    continueBtn.border = true;
    continueBtn.visible = true;
    continueBtn.label = "Continue";
    addChild(continueBtn);

    exitBtn = new Button();

    exitBtn.x = continueBtn.x;
    exitBtn.y = continueBtn.y + continueBtn.height;
    exitBtn.width = 30;
    exitBtn.height = 20; 
    exitBtn.border = true;
    exitBtn.visible = true;
    exitBtn.label = "Exit";
    addChild(exitBtn);

    continueBtn.addEventListener(MouseEvent.CLICK, sendMsg);
    exitBtn.addEventListener(MouseEvent.CLICK, endFlash);

    inTxt.text = "showMenu";

}

「showMenu」というメッセージが表示されますが、どちらのボタンも表示されません。

ゲイリー

4

1 に答える 1

0
function showMenu(evt: Event):void

"hotSpot" スプライト (おそらく、または他の表示オブジェクト) に追加したリスナーはイベントではなく MouseEvent であるため、evt は "Event" ではなく "MouseEvent" でなければなりません。

hotSpot.addEventListener(MouseEvent.CLICK, showMenu);

これは、イベント イベントではなく、MouseEvent をリッスンしてキャッチする showMenu 関数を呼び出します。

また、イベントのみをインポートしました。代わりに MouseEvent をインポートしてください。新しいコード:

import flash.text.TextField;
import fl.controls.Button; 
import flash.events.MouseEvent; //This line changed!

hotSpot.addEventListener(MouseEvent.CLICK, showMenu);
var continueBtn:Button;
var exitBtn:Button;
 //This line changed!
function showMenu(evt:MouseEvent):void{
continueBtn = new Button();
continueBtn.x = 20;
continueBtn.y = 100;
continueBtn.width = 30;
continueBtn.height = 20;
continueBtn.border = true;
continueBtn.visible = true;
continueBtn.label = "Continue";
addChild(continueBtn);

exitBtn = new Button();

exitBtn.x = continueBtn.x;
exitBtn.y = continueBtn.y + continueBtn.height;
exitBtn.width = 30;
exitBtn.height = 20; 
exitBtn.border = true;
exitBtn.visible = true;
exitBtn.label = "Exit";
addChild(exitBtn);

continueBtn.addEventListener(MouseEvent.CLICK, sendMsg);
exitBtn.addEventListener(MouseEvent.CLICK, endFlash);

inTxt.text = "showMenu";
}
于 2012-07-24T19:42:10.430 に答える