company logo
advertisement for deep fried Twinkies


我的 ActionScript 3.0 game programming university 学习笔记(6)


Accepting Player Input#e#

Accepting Player Input
游戏嘛,当然少不了用户的操作阿!接下来我们讲来自玩家的输入,玩家的操作都是来自鼠标和键盘的,因为鼠标和键盘是现在计算机中标准的输入设备!

接下来会讲Mouse, keyboard, text 的 player input

Mouse Input

我们已经知道如何把一个sprite转换成按钮了,使他有鼠标点击的反应, 更有趣的是,你也可以获得鼠标指针的位置,Sprite是能够发觉到鼠标指针是否经过了他!

你可以通过属性mouseX, mouseY来获得鼠标指针在场景中的坐标位置,下边的代码会获得鼠标指针的位置,并把坐标数通过text field显示出来。

addEventListener(Event.ENTER_FRAME, showMouseLoc);
function showMouseLoc(event:Event) {
mouseLocText.text = “X=”+mouseX+” Y=”+mouseY;
}

你可以通过鼠标事件,监听sprite,  当鼠标经过Sprite的时候触发一些事件的发生

mySprite.addEventListener(MouseEvent.ROLL_OVER, rolloverSprite);
function rolloverSprite(event:MouseEvent) {
mySprite.alpha = 1;
}

这个sprite的透明度设定成了1,就是100%的透明度,那么我们设定下,当鼠标移开sprite的时候,透明度变成50%

mySprite.addEventListener(MouseEvent.ROLL_OUT, rolloutSprite);
function rolloutSprite(event:MouseEvent) {
mySprite.alpha = .5;
}

边学习,边做例子,我做的例子代码和文件如下,另外当我看到alpha =.5的时候,我想到是否0.5和50%都可以,经过测试50%是不被允许的

 

 

 

var mouseLocText:TextField = new TextField();
addChild(mouseLocText);
addEventListener(Event.ENTER_FRAME, showMouseLoc);
function showMouseLoc(event:Event) {
mouseLocText.text = "X=" +mouseX+ "Y="+mouseY;
}


var mySprite:Sprite = new Sprite();
mySprite.graphics.beginFill(0x333333);
mySprite.graphics.drawCircle(250,100,20);
//mySprite.x = 100;
//mySprite.y = 100;
addChild(mySprite);
mySprite.addEventListener(MouseEvent.ROLL_OVER, rolloverSprite);
function rolloverSprite(event:MouseEvent) {
mySprite.alpha = 1;
}
mySprite.addEventListener(MouseEvent.ROLL_OUT,rolloutSprite);
function rolloutSprite(event:MouseEvent){
mySprite.alpha = 0.5;
        }