Actionscript 3.0 Ошибка прослушивателя событий клавиатуры - PullRequest
0 голосов
/ 05 июля 2011

У меня есть две функции, повернуть и развернуть, и я использовал прослушиватель событий клавиатуры, чтобы прослушивать key_Down A и B, но я получаю и ошибку:

1119: доступ возможно неопределенсвойство A через ссылку со статическим типом Class.

ti.border = true
ti.addEventListener(TextEvent.TEXT_INPUT, onInput);

function onInput(event:TextEvent):void {
  if(ti.text.search('a')!=-1) load_image("http://i54.tinypic.com/anom5d.png", "ottefct");
  else if(ti.text.search('b')!=-1) load_image("http://i53.tinypic.com/2dv7dao.png", "rnd");
  else if(ti.text.search('c')!=-1) load_image("http://i51.tinypic.com/m8jp7m.png", "ssd");
}

var loaded_images:Dictionary = new Dictionary();

function load_image(url:String, id_name:String)
{
  var loader:Loader = new Loader();
  loader.name = id_name;
  var url_req:URLRequest = new URLRequest(url);
  loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadingComplete);
  loader.load(url_req);
}

function onLoadingComplete(evt:Event):void
{
  var img_name:String = evt.currentTarget.loader.name
  var spr_box:Sprite = new Sprite();
  spr_box.addChild(evt.currentTarget.loader);

  spr_box.mouseChildren = false;
  spr_box.doubleClickEnabled = true;

  spr_box.addEventListener(MouseEvent.MOUSE_DOWN, drag);
  spr_box.addEventListener(MouseEvent.MOUSE_UP, drop);
  spr_box.addEventListener(KeyboardEvent.KEY_DOWN, rotate);
  spr_box.addEventListener(KeyboardEvent.KEY_DOWN, unrotate);

  spr_box.width = 124;
  spr_box.height = 180;
  spr_box.x = 430;
  spr_box.y = 425;


  this.addChild(spr_box);
  loaded_images[img_name] = spr_box;
}


function drag(evt:MouseEvent):void
{
  evt.currentTarget.startDrag()
}

function drop(evt:MouseEvent):void
{
  evt.currentTarget.stopDrag()
}

function rotate(evt:KeyboardEvent):void
{
  if (evt.keyCode==Keyboard.D) {
    evt.currentTarget.rotation = 90 
  }
}

function unrotate(evt:KeyboardEvent):void
{
  if (evt.keyCode==Keyboard.A) {
    evt.currentTarget.rotation = 0 
  }
}

1 Ответ

2 голосов
/ 06 июля 2011

Хорошо - вы ссылаетесь только на проп A в одном месте, и это вызывает неопределенную ошибку. Итак, вы не правильно связали класс Keyboard ... или ...?

В любом случае - вы также можете использовать числовое назначение для захвата нажатий клавиш. В этом случае:

function rotate(evt:KeyboardEvent):void
{
  if (evt.keyCode == 68) { //"D"
    evt.currentTarget.rotation = 90 
  }
}

function unrotate(evt:KeyboardEvent):void
{
  if (evt.keyCode == 65) {  //"A"
    evt.currentTarget.rotation = 0 
  }
}

Они все изложены довольно четко прямо здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...