0
에 그러나 hitTest를 수행 할 때 오류를 반복 그래서,이 코드가 : 대상이 타격을받을 것입니다 개체입니다는 AS3
public function hitTest1(e:Event) : void
{
if (hitTestObject(target.hit)){
gotoAndStop(2,"Scene 1");
removeEventListener(Event.ENTER_FRAME, hitTest1);
}
}
있는, 그리고 히트 이상 계층의 심볼 객체라고합니다. 코드를 실행할 때이 오류가 다시 발생합니다.
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at com.Mass.basics1::Asteroid/hitTest1()
참고 : 소행성은이 코드가 모두 포함 된 .as 파일입니다.
는 그래서, "대상"개체입니다package com.Mass.basics1
{
import flash.display.MovieClip;
import flash.display.Stage;
import flash.events.Event;
public class Asteroid extends MovieClip
{
public var target:Cosmo;
private var stageRef:Stage;
private var speed:Number;
// public var ourAsteroid:Asteroid = new Asteroid(stage);
public function Asteroid(stageRef:Stage)
{
this.stageRef = stageRef;
setupAsteroid(true);
addEventListener(Event.ENTER_FRAME, loop, false, 0, true);
addEventListener(Event.ENTER_FRAME, hitTest1);
}
public function hitTest1(e:Event):void
{
if (hitTestObject(target.hit))
{
gotoAndStop(2,"Scene 1");
removeEventListener(Event.ENTER_FRAME, hitTest1);
}
}
public function setupAsteroid(randomizeY:Boolean = false):void
{
//inline conditional, looks complicated but it's not.
y = randomizeY ? Math.random() * stageRef.stageHeight:0;
x = Math.random() * stageRef.stageWidth;
rotation = Math.random() * 360;
scaleX = Math.random();
scaleY = scaleX;
speed = 20 + Math.random() * 10;
}
public function loop(e:Event):void
{
y += speed;
if (y > stageRef.stageHeight)
{
setupAsteroid();
}
}
}
}
늦은 응답으로 인해 미안합니다. 다른 객체는 자신의 클래스 파일을 가진 행성입니다. 그런 다음 Planet 유형의 변수 "Target"을 만든 다음 히트 테스트를 수행합니다. –
@Rizzla : 이런 질문을 코멘트로하는 것이 낫습니다. 적절한 대답으로 만 대답해야합니다. – puggsoy
@puggsoy 괜찮습니다. 나중에 알게 될 것입니다. – GeorgeCross