【发布时间】:2015-01-02 13:32:24
【问题描述】:
我在 Flash 益智游戏中遇到问题。如果我在时间线的第一帧创建游戏,它可以工作,但如果游戏是在(例如)第 5 帧创建的,它就不起作用!
它向我发送此错误:
TypeError:错误 #1009:无法访问 null 的属性或方法 对象引用。 在 Map() 类型错误:错误 #2007:参数 hitTestObject 必须为非空。 在 flash.display::DisplayObject/_hitTest() 在 flash.display::DisplayObject/hitTestObject() 在 DragDrop/drop()
拖放类
package
{
import flash.display.*;
import flash.events.*;
public class DragDrop extends Sprite
{
var origX:Number;
var origY:Number;
var target:DisplayObject ;
public function DragDrop()
{
// constructor code
origX = x;
origY = y;
addEventListener(MouseEvent.MOUSE_DOWN, drag);
buttonMode = true;
}
function drag(evt:MouseEvent):void
{
stage.addEventListener(MouseEvent.MOUSE_UP, drop);
startDrag();
parent.addChild(this);
}
function drop(evt:MouseEvent):void
{
stage.removeEventListener(MouseEvent.MOUSE_UP, drop);
stopDrag();
if(hitTestObject(target))
{
visible = false;
target.alpha = 1;
Object(parent).match();
}
x = origX;
y = origY;
}
}
}
我认为问题出在 var 目标上!也不知道怎么解决。
Map.as 在此处输入代码包 {
import flash.display.*;
import flash.events.*;
public class Map extends MovieClip
{
var dragdrops:Array;
public function Map()
{
// constructor code
dragdrops = [tt1];
var currentObject:DragDrop;
for(var i:uint = 0; i < dragdrops.length; i++)
{
currentObject = dragdrops[i];
currentObject.target = getChildByName(currentObject.name + "_target");
}
}
public function match():void
{
}
}
}
【问题讨论】:
-
阅读我的回答。你的 hitTestObject 方法总是被错误地调用。
标签: actionscript-3 flash-cs5 hittest