Apache flex 无法访问空对象引用的属性或方法
我尝试用Flex为我用Flash编写的项目进行预排序。 我是在这个网站的帮助下做这件事的 我的Flash项目在主类中有一个叫做Game的源代码Apache flex 无法访问空对象引用的属性或方法,apache-flex,flash,actionscript-3,preloader,Apache Flex,Flash,Actionscript 3,Preloader,我尝试用Flex为我用Flash编写的项目进行预排序。 我是在这个网站的帮助下做这件事的 我的Flash项目在主类中有一个叫做Game的源代码 stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDown); stage.addEventListener(KeyboardEvent.KEY_UP, keyUp); private function keyDown(event:KeyboardEvent) { if (event.keyCod
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDown);
stage.addEventListener(KeyboardEvent.KEY_UP, keyUp);
private function keyDown(event:KeyboardEvent) {
if (event.keyCode == 81 && q_was_push == false) q_was_push = true;
if (event.keyCode == 81) press_q = true;
if (event.keyCode == 65) press_a = true;
if (event.keyCode == 83) press_s = true;
if (event.keyCode == 32) press_space = true;
} ...
当我使用Flex创建的新swf文件时,我有一个错误
TypeError:错误#1009:无法访问空对象引用的属性或方法。
在游戏()中
如果我评论
//stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDown);
//stage.addEventListener(KeyboardEvent.KEY_UP, keyUp);
Flex应用程序可以工作,但Flash应用程序不会对按钮按下做出反应
请了解如何将预加载按钮和工作按钮组合在一起在将显示对象添加到显示列表之前,
阶段
属性将为空。侦听事件并从中添加关键侦听器
addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
function onAddedToStage(e:Event):void
{
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDown);
stage.addEventListener(KeyboardEvent.KEY_UP, keyUp);
}
在将显示对象添加到显示列表之前,
stage
属性将为空。侦听事件并从中添加关键侦听器
addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
function onAddedToStage(e:Event):void
{
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDown);
stage.addEventListener(KeyboardEvent.KEY_UP, keyUp);
}
只要您需要访问stage,就让类在构造函数中侦听/检查它,并让您的init函数作为处理程序
package
{
import flash.display.Sprite;
import flash.events.Event;
/**
* ...
* @author Brian Hodge
*/
public class SomeClass extends Sprite
{
public function SomeClass()
{
if (stage) _init();
else addEventListener(Event.ADDED_TO_STAGE, _init);
}
private function _init(e:Event = null):void
{
//You may now access the stage property of the DisplayObject.
stage.addEventListener(Event.RESIZE);
}
}
}
只要您需要访问stage,就让类在构造函数中侦听/检查它,并让您的init函数作为处理程序
package
{
import flash.display.Sprite;
import flash.events.Event;
/**
* ...
* @author Brian Hodge
*/
public class SomeClass extends Sprite
{
public function SomeClass()
{
if (stage) _init();
else addEventListener(Event.ADDED_TO_STAGE, _init);
}
private function _init(e:Event = null):void
{
//You may now access the stage property of the DisplayObject.
stage.addEventListener(Event.RESIZE);
}
}
}