2011-07-05 56 views
0

我有兩個功能,旋轉和unrotate,我使用的鍵盤事件監聽器監聽KEY_DOWN A和B,但我得到和錯誤:的ActionScript 3.0鍵盤事件偵聽器的錯誤

1119: Access of possibly undefined property A through a reference with static type 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 
    } 
} 
+0

在代碼的另一個區域中,您是否試圖調用名爲COMMA的對象的屬性?防爆。 mcExample.COMMA = someValue; – vanhornRF

回答

2

好 - 你只在一個地方引用道具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 
    } 
} 

它們都佈置得很清楚right here