Actionscript 3 未定义属性AS3

Actionscript 3 未定义属性AS3,actionscript-3,properties,undefined,Actionscript 3,Properties,Undefined,第二个跟踪给出了这个错误:“TypeError:error#1010:A term未定义且没有属性。在Main/Check()”你能至少指出我一点吗 谢谢。通过在Main方法中使用var语句,您将实例分配给仅在该方法范围内的局部变量。按如下方式更新代码,您应该会得到预期的结果: package{ import flash.display.MovieClip; import flash.utils.Timer; import flash.events.TimerEvent; import flas

第二个跟踪给出了这个错误:“TypeError:error#1010:A term未定义且没有属性。在Main/Check()”你能至少指出我一点吗


谢谢。

通过在
Main
方法中使用
var
语句,您将实例分配给仅在该方法范围内的局部变量。按如下方式更新代码,您应该会得到预期的结果:

package{
import flash.display.MovieClip;
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.events.MouseEvent;

public class Main extends MovieClip{

    public var ability1,ability3:Ability;

    public function Main(){

        var ability1 = new Ability(30,30,"Ability Name","...",5,false);
        addChild(ability1);         
        var ability2 = new Ability(60,30,"Ability Name2","...",3,false);
        addChild(ability2);
        var ability3 = new Ability(45,60,"Ability Name3","...",5,true);
        addChild(ability3);
        stage.addEventListener(MouseEvent.CLICK, Check);    

        trace(ability1.Points); //outputs the value

    }
    public function Check(event:MouseEvent):void{

        trace(ability1.Points); //outputs error

    }
}}
package{
    import flash.display.MovieClip;
    import flash.utils.Timer;
    import flash.events.TimerEvent;
    import flash.events.MouseEvent;

    public class Main extends MovieClip{

        public var ability1:Ability;
        public var ability3:Ability;

        public function Main(){

            // I'm a local property scoped only to this method
            var ability2 = new Ability(60,30,"Ability Name2","...",3,false);
            addChild(ability2);

            // We're instance properties and can be accessed from any method 
            // in the class (and from outside the class as well)
            ability1 = new Ability(30,30,"Ability Name","...",5,false);
            addChild(ability1);  

            ability3 = new Ability(45,60,"Ability Name3","...",5,true);
            addChild(ability3);
            stage.addEventListener(MouseEvent.CLICK, Check);    

            trace(ability1.Points); //outputs the value

        }
        public function Check(event:MouseEvent):void{

            trace(ability1.Points); //outputs the value
            trace(ability3.Points); //outputs the other value
        }
    }
}