as3 1119:访问可能未定义的属性getter / setter

时间:2014-11-15 04:16:08

标签: actionscript-3 flash actionscript flash-cs5

如果有人可以扩展当前的答案,那就太棒了,谢谢。

完整错误

Line 22 1119: Access of possibly undefined property CharacterX through a reference with static type flash.display:DisplayObject.

我试图为对象鲨鱼设置一个已在对象角色中定义的变量 第一次在flash中使用setter,所以我可能不会这样做。

代码我用来设置变量我试图注释掉我认为与此问题无关的内容,实际上没有在实际代码中注释掉。

var character:Character; 
//var bullet:Bullet=null;
//var bullets:Array = new Array();
//var enemies:Array = new Array();
//character=new Character(bullets);
addChild(character);
var shark:Shark=new Shark();
addChild(shark);
//var enemy:Enemy=null;
////var i:int;
//for (i=0; i<10; i++) {

//enemy = new Enemy(Math.random()*stage.stageWidth, Math.random()*stage.stageHeight);
//addChild(enemy);
//  enemies.push(enemy);
//}
//stage.addEventListener(Event.ENTER_FRAME, colTest);
//function colTest(e:Event ):void {
//  if(character.hitTestObject(turtle)){
//     character.gotoAndStop("Turtle");
//     }



//}

shark.setT(character.x, character.y)

我尝试使用上述函数定义变量的类。

package 
{
    import flash.display.*;
    import flash.events.*;

    public class Shark extends MovieClip
    {
            var CharacterX:Number = 0;
            var CharacterY:Number = 0;
        public function Shark()
        {

            this.x = 300;
            this.y = 200;
            addEventListener(Event.ENTER_FRAME,playGame);
        }
        public function setT(characterx:Number,charactery:Number){
            CharacterX = characterx - this.x;
            CharacterY = charactery - this.y;
        }

        function playGame(event:Event):void
        {
            var ease:int = 20;
            var speed:int = 10;
            var targetX:int = root.CharacterX - this.x;
            var targetY:int = root.CharacterY - this.y;
            var rotation = Math.atan2(targetY,targetX) * 180 / Math.PI;

在这里删除代码,没有想要进行代码转储可以获得任何可能相关的问题。

如果它可能有帮助,这是所有代码的pastebin,

Shark class:

Actions on Frame 1:

字符class

1 个答案:

答案 0 :(得分:1)

首先我要说的是我无法在这里发现确切的问题,但我有一些想法。您的错误1999表示某种类型的显示对象正在尝试更改您的变量。当您使用parent.myMethod()时会发生这种情况,因为父类型被键入为显示对象。你可以通过类似于(parent作为MovieClip).myMethod

的类型转换来解决这个问题

在你的情况下,我没有看到这个问题的确切来源。但您可以尝试在setT函数中使用this.characterX