모든 발주자는 당신이 아래에 볼 수있는 것은 좋은 멤버가 나null 객체 참조를주는 클래스에서 타임 라인 객체에 액세스 하시겠습니까? 여전히 활성 대답이 질문에 아직 도달하지
에러를 발견 의미도 없습니다 구문 오류입니다 :
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at Player()
at Maintest_fla::MainTimeline/createPlayer()
때 'm은 인스턴스 이름이 wall0x 인 객체를 인스턴스 이름 world와 함께 객체에 추가하려고 시도했지만 null 객체 오류가 발생합니다. 관련없는 변수의 긴 목록도 무시하십시오.
package
{
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.TimerEvent;
import flash.filters.BlurFilter;
import flash.utils.Timer;
public class Player extends MovieClip
{
// player settings
private var _rotateSpeedMax:Number = 20;
public var _gravity:Number = .10;
// projectile gun settings
public var _bulletSpeed:Number = 4;
public var _maxDistance:Number = 200;
public var _reloadSpeed:Number = 250;//milliseconds
public var _barrelLength:Number = 20;
public var _bulletSpread:Number = 5;
// gun stuff
private var _isLoaded:Boolean = true;
private var _isFiring:Boolean = false;
private var _endX:Number;
private var _endY:Number;
private var _startX:Number;
private var _startY:Number;
private var _reloadTimer:Timer;
private var _bullets:Array = [];
// array that holds walls
public var _solidObjects:Array = [];
//
private var _player:MovieClip;
private var _dx:Number;
private var _dy:Number;
private var _pcos:Number;
private var _psin:Number;
public var _trueRotation:Number;
public function Player()
{
// constructor code //Right hereVVVthe instance name is wall0x and it's in the object world on the stage.
_solidObjects = [MovieClip(root).world.wall01,MovieClip(root).world.wall02,MovieClip(root).world.wall03,MovieClip(root).world.wall04];
/*addEventListener(Event.ENTER_FRAME, enterFrameHandler);
addEventListener(MouseEvent.MOUSE_DOWN, onMouseDownHandler);
addEventListener(MouseEvent.MOUSE_UP, onMouseUpHandler);*/
}
}
}
코드 프레임 2에서 플레이어를 만든 다음 코드를 다른 개체에 계속 설정합니다.
stage.addEventListener(Event.ENTER_FRAME, createPlayer);
function createPlayer(e:Event):void
{
// attach player movieclip from library
// position player in center
if (character!=null&&_player!=null)
{
_player.x = character.x + 5;
_player.y = character.y + 5;
}
else if (_player ==null && world.wall01 != null)
{
var _player:Player;
_player = new Player();
// add to display list
stage.addChild(_player);
}
}
Player 생성자를 호출 할 때? 프레임 2에서 호출됩니까? 변수가 프레임 2에있는 경우 프레임 2에 Player 객체를 만들어야한다고 생각합니다 ... – tziuka
네, 프레임 2에 플레이어 객체를 만듭니다. 객체를 목록에 추가하면 구문 오류가 발생합니다. 이처럼. – Trows
메인 타임 라인의 frame2에'world'가 있습니까? (그리고 그것의 모든 벽은?) 아니면 프레임 1에만 존재합니까? – BadFeelingAboutThis