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

Posted

技术标签:

【中文标题】as3 1119: 访问可能未定义的属性 getter/setter【英文标题】:as3 1119: Access of possibly undefined property getters/setters 【发布时间】:2015-01-12 13:56:45 【问题描述】:

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

完全错误

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;

在此处截取代码,不想进行代码转储可以为您提供任何可能相关的内容,只需询问即可。

如果有帮助,这里是所有代码的粘贴箱,

Shark class:

Actions on Frame 1:

字符class

【问题讨论】:

【参考方案1】:

首先让我说我无法在这里发现确切的问题,但我有一些想法。您的错误 1999 表示某些类型的显示对象正在尝试更改您的变量。当您使用 parent.myMethod() 时,这种情况经常发生,因为 parent 被键入为显示对象。你可以通过类型转换来解决这个问题 (parent as MovieClip).myMethod

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

【讨论】:

好的,所以我尝试使用适当的 getter 和 setter,但它仍然回到同样的问题,你的意思是像 parent 作为movieclip 的类型转换/你有一个例子吗?抱歉,我真的是 Flash 新手。 如果有帮助,这里是所有代码的粘贴箱,Shark 类:pastebin.com/0GktA6VX 第 1 帧上的操作:pastebin.com/0gtB3nxG 字符类:pastebin.com/yWd5dc9R

以上是关于as3 1119: 访问可能未定义的属性 getter/setter的主要内容,如果未能解决你的问题,请参考以下文章

1120:访问未定义的属性_stop

AS3 中的“TypeError:错误 #1010:术语未定义且没有属性”

Flash AS3.0 - 错误 1180 调用可能未定义的方法 gotoAndPlay?

Adobe Flash - 访问可能的未定义属性 COMPLETE

“可能未定义的访问”动作脚本

静态/全局变量问题