[英]Cannot access a property or method of a null object reference
I try to do preloder in Flex for my project written in Flash. 我尝试在Flash中为用Flash编写的项目做前期准备。 I make this with the help of this site link text My Flash project have next source in main class called Game 我借助此站点链接文本来做到这一点。我的Flash项目在名为Game的主类中具有下一个来源
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;
} ...
When I take new swf file maked by Flex, I have error TypeError: Error #1009: Cannot access a property or method of a null object reference. 当我使用Flex制作的新swf文件时,出现错误TypeError:错误#1009:无法访问空对象引用的属性或方法。 at Game() 在Game()
if I comment 如果我评论
//stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDown);
//stage.addEventListener(KeyboardEvent.KEY_UP, keyUp);
Flex application work but Flash application does not react to button presses Flex应用程序可以工作,但是Flash应用程序对按钮按下没有反应
Please how I can make preloader and work buttons together 请我如何使预加载器和工作按钮一起
The stage
property will be null until a display object is added to the display list. 在将显示对象添加到显示列表之前, stage
属性将为null。 Listen to the addedToStage event and add the key listeners from there. 侦听AddedToStage事件,然后从那里添加键侦听器。
addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
function onAddedToStage(e:Event):void
{
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDown);
stage.addEventListener(KeyboardEvent.KEY_UP, keyUp);
}
Anytime you need access to the stage, have the Class listen for it/check for it in the constructor, and have your init function be the handler. 每当您需要访问该阶段时,让Class在构造函数中侦听/检查它,并让您的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);
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.