将flash.events:KeyEvent类型的值隐式强制转换为不相关的类型flash.events:MouseEvent

时间:2014-01-20 08:45:01

标签: actionscript-3

如何调用flash事件的函数:flash事件中的MouseEvent keyboardEvent函数

我是as3中的一员,请帮忙

stage.addEventListener(KeyboardEvent.KEY_DOWN,keyPressed);

function keyPressed(event:KeyboardEvent){

    if (event.keyCode == Keyboard.ENTER)
    {

        if (keyMode == 0)
        {
            keyMode = 1;
            **startFun(event);**

        }
        else if (keyMode == 1)
        {
            **checkfun(event);**

        }
        else if (keyMode == 2)
        {
            keyMode = 1;
            **anotherPro(event);**

        }
    }
}

3 个答案:

答案 0 :(得分:0)

有几种方式,派遣活动等。我将给你一个简单的例子:

// or should be KEY_UP?
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressedHandler, false, 0, true);
stage.addEventListener(MouseEvent.CLICK, exampleMouseClickHandler, false, 0, true);

function exampleMouseClickHandler(event:MouseEvent):void
{
    //if necessary to pass any parameter, just need to change these mouseClickLogic() / keyPressLogic() methods
    mouseClickLogic();
    keyPressLogic();
}

function mouseClickLogic():void
{
    //do something...
}

function keyPressedHandler(event:KeyboardEvent):void
{
    //if necessary to pass any parameter, just need to change these mouseClickLogic() / keyPressLogic() methods
    keyPressLogic();
    mouseClickLogic();
}

function keyPressLogic():void
{
    //to something...
}

答案 1 :(得分:0)

You can use like that:
MouseEvent in flash events:

import flash.events.MouseEvent;

stage.addEventListener(MouseEvent.CLICK,clickStage);
stage.addEventListener(MouseEvent.MOUSE_UP,upStage);
stage.addEventListener(Event.MOUSE_LEAVE,leaveStage);
stage.addEventListener(MouseEvent.MOUSE_DOWN,mouseDownStage);
function clickStage(e:MouseEvent):void
{
    trace("click Stage");
}

function upStage(e:MouseEvent):void
{
    trace("up Stage");
}

function leaveStage(e:Event):void
{
    trace("leave Stage");
}

function mouseDownStage(e:MouseEvent):void
{
    trace("mouse Down Stage");
}


keyboardEvent function:  

function reportKeyDown(event:KeyboardEvent):void
{
    trace("Key Pressed: " + String.fromCharCode(event.charCode) +   " (character code: " + event.charCode + ")");
}
stage.addEventListener(KeyboardEvent.KEY_DOWN, reportKeyDown);

答案 2 :(得分:0)

我感谢所有试图帮助我的人

这是我的程序,没有任何错误,我之前所做的错误是在此代码而不是Event中 我键入了MousEvent

function startFun(evt:Event):void

import flash.events.KeyboardEvent;
import flash.events.MouseEvent;
import flash.events.Event;



var elapsedTime:Number;
var NumOfProplem:Number;
var PropSolved:Number;
var completeSet:Boolean;


answerbox.restrict = "0-9";
ProplemBox.restrict = "0-9";

mult2.restrict = "?";
mult1.restrict = "?";



var keyMode:Number = 0;
stage.focus = ProplemBox;


bt1.visible = false;
bt2.visible = false;


//////////////////////////////
btnstart.addEventListener(MouseEvent.CLICK, startFun);

function startFun(evt:Event):void {
    if (ProplemBox.text == "") {
        stage.focus = ProplemBox;
        return;
    }
    bt1.visible = true;
    bt2.visible = true;
    NumOfProplem = Number(ProplemBox.text);
    PropSolved = 0;
    completeSet = false;
    elapsedTime = getTimer();
    keyMode = 1;
    anotherPro(evt);    
}
///////////////////////////////




    stage.focus = answerbox;
    answerbox.setSelection(0,3);
}
/////////////////


bt1.addEventListener(MouseEvent.CLICK,checkfun);

function checkfun(evt:Event):void
{
    var x:Number = parseInt(mult1.text);
    var y:Number = parseInt(mult2.text);
    var z:Number = parseInt(answerbox.text);

    if ((x*y )== z){

        messagebox.text = "Right";
        PropSolved++;

        if (PropSolved >= NumOfProplem ){

            keyMode = 3;
            endGameReport();
        }

        else{

            keyMode = 2;
        }
    }
    else
    {
        messagebox.text = "Wrong";
        stage.focus = answerbox;
        answerbox.setSelection(0,3);

    }
}

function endGameReport():void{

    elapsedTime = (getTimer() - elapsedTime);
    stage.focus = ProplemBox;
    ProplemBox.setSelection(0,2);

    bt1.visible = false;
    bt2.visible = false;


    messagebox.text = "You completed"  + NumOfProplem + "Proplems in"
    + Math.floor(elapsedTime/1000) +  "Second";

}


stage.addEventListener(KeyboardEvent.KEY_DOWN,keyPressed);

function keyPressed(evt:KeyboardEvent){

    if (evt.keyCode == Keyboard.ENTER)
    {

        if (keyMode == 0)
        {
            keyMode = 1;
            startFun(evt);

        }
        else if (keyMode == 1)
        {
            checkfun(evt);

        }
        else if (keyMode == 2)
        {
            keyMode = 1;
            anotherPro(evt);

        }
    }
}