Keycode Trace Function not outputting all Keycodes


the trace function in file doesn't output of keycodes on keyboard. letters generate keycode , others don't. instance, "u" outputs 85 "i" outputs nothing.

here's trace function...
trace(event.keycode);

and here's rest of code work in progress...


package {
import flash.display.sprite;
import flash.display.stagealign;
import flash.display.stagescalemode;
import flash.events.event;
import flash.events.keyboardevent;
import flash.ui.keyboard;

public class velocity3d extends sprite
{
private var ball:ball;
private var xpos:number = 150;
private var ypos:number = 0;
private var zpos:number = 150;
private var vx:number = 0;
private var vy:number = 0;
private var vz:number = 0;
private var friction:number = .98;
private var fl:number = 250;
private var vpx:number = stage.stagewidth / 2;
private var vpy:number = stage.stageheight / 2;
private var ballb:ball;
private var xposb:number = 130;
private var yposb:number = 0;
private var zposb:number = 150;
private var vxb:number = 0;
private var vyb:number = 0;
private var vzb:number = 0;

public function velocity3d()
{
init();
}

private function init():void
{
stage.align = stagealign.top_left;
stage.scalemode = stagescalemode.no_scale;

ball = new ball(40, 0xff0000);
ballb = new ball(40, 0xffff00);
addchild(ball);
addchild(ballb);
addeventlistener(event.enter_frame, onenterframe);
stage.addeventlistener(keyboardevent.key_down, onkeydown);

}

private function onenterframe(event:event):void
{
xpos += vx;
ypos += vy;
zpos += vz;

vx *= friction;
vy *= friction;
vz *= friction;

xposb += vx;
yposb += vy;
zposb += vz;

vxb *= friction;
vyb *= friction;
vzb *= friction;

if(zpos > -fl)
{
var scale:number = fl / (fl + zpos);
ball.scalex = ball.scaley = scale;
ball.x = vpx + xpos * scale;
ball.y = vpy + ypos * scale;
ball.visible = true;
}
else
{
ball.visible = false;
}


if(zposb > -fl)
{
var scaleb:number = fl / (fl + zposb);
ballb.scalex = ballb.scaley = scale;
ballb.x = vpx + xpos * scale;
ballb.y = vpy + ypos * scale;
ballb.visible = true;
}
else
{
ball.visible = false;
}
}

private function onkeydown(event:keyboardevent):void
{
trace(event.keycode);
switch(event.keycode)
{
case 87 :
vy -= 1;
break;

case keyboard.numpad_2 :
vy += 1;
break;

case keyboard.numpad_4 :
vx -= 1;
break;

case keyboard.numpad_6 :
vx += 1;
break;

case keyboard.up :
vz += 1;
break;

case keyboard.down :
vz -= 1;
break;

case keyboard.f1: //82
vyb -= 1;
break;

case keyboard.f2 : //67
vyb += 1;
break;

case keyboard.f3 : //68
vxb -= 1;
break;

case keyboard.f4 : //70
vxb += 1;
break;

case keyboard.f5 : //65
vzb += 1;
break;

case keyboard.f6 : //90
vzb -= 1;
break;

default :
break;
}
}
}
}



-----

this ball class...

package {
import flash.display.sprite;

public class ball extends sprite {
public var radius:number;
private var color:uint;
public var vx:number = 0;
public var vy:number = 0;
public var mass:number = 1;

public function ball(radius:number=40, color:uint=0xff0000) {
this.radius = radius;
this.color = color;
init();
}
public function init():void {
graphics.beginfill(color);
graphics.drawcircle(0, 0, radius);
graphics.endfill();
}
}
}

okay, when open keyviewer.swf file colin moock book when not in flash. keycodes show when run program. however, when open keyviewer.as file , create .fla file in flash run program using ctrl+enter, of keycodes don't show up. same problem other program. why .swf outside of flash work correctly .swf when used in flash doesn't? new .swf file created when press ctrl+enters works correctly when open outside of flash. when open in flash doesn't work. weird.


package {
import flash.display.*;
import flash.events.*;
import flash.text.*;
import flash.ui.*;

// displays keycode , character code key pressed.
public class keyviewer extends sprite {
private var keyoutput:textfield;
public function keyviewer () {
keyoutput = new textfield();
keyoutput.text = "press key...";
keyoutput.autosize = textfieldautosize.left;
keyoutput.border = true;
keyoutput.background = true;
addchild(keyoutput);

stage.addeventlistener(keyboardevent.key_down, keydownlistener);
}

private function keydownlistener (e:keyboardevent):void {
keyoutput.text = "the key code key pressed is: "
+ e.keycode + "\n";
keyoutput.appendtext("the character code key pressed is: "
+ e.charcode + "\n");
keyoutput.appendtext("the character key pressed is: "
+ string.fromcharcode(e.charcode));
}
}
}



More discussions in ActionScript 3


adobe

Comments

Popular posts from this blog

Convierte tu Raspberry en un NAS. Firmware fvdw-sl 15.3 - Raspberry Pi Forums

How to format a Get Request

avrdude: verification error, first mismatch at byte 0x0000 0x0c != 0x62