AS3:类之间导入类/共享变量 [英] AS3: Importing classes/Sharing variables between classes

查看:224
本文介绍了AS3:类之间导入类/共享变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

好吧,这是我的问题:我有一个变量在一个名为镜子类

Ok, this is my problem: i have a variable in a class named Mirror

public var line:Sprite = new Sprite(); 

我想使用这个变量在另一个名为MovieClip类。我在MovieClip类进口类:

i want to use that variable in another class named MovieClip. I imported the class in the MovieClip class:

   public class MovieClips extends MovieClip
{
    import Mirror;
    public function MovieClips(radius:int, _x:int, _y:int,size:int,span:int,addl:Array) 
    {....

但是当我尝试做这样的事情:

but when i try to do something like this:

if (Mirror.line.hitTestObject(ball) == true) {
                    speedY *= -1;
                }

它显示了类似的错误:通过静态类型类参考阿塞斯可能未定义的属性线。我不知道我做了什么错?我在导入我的课在错误的道路?

It shows up like an error: Acess of a possibly undefined property line through a reference with static type Class. I'm not sure what did i do wrong? Am i importing my class in the wrong way?

推荐答案

您应该通过您的对象的影片剪辑就像在下面的例子对象:

You should pass your Mirror object to your MovieClips object like in the following example:

package {

    import flash.display.MovieClip;
    import flash.display.Sprite;
    import flash.events.Event;

    public class Main extends Sprite 
    {

        public function Main():void 
        {
            if (stage) init();
            else addEventListener(Event.ADDED_TO_STAGE, init);

        }// end function

        private function init(e:Event = null):void 
        {
            removeEventListener(Event.ADDED_TO_STAGE, init);

            var mirror:Mirror = new Mirror();
            var movieClips:MovieClips = new MovieClips(mirror);

        }// end function

    }// end class

}// end package

import flash.display.MovieClip;

class Mirror extends MovieClip {

    public var line:MovieClip;

    public function Mirror():void {

        line = new MovieClip();

    }// end function

}// end class

class MovieClips extends MovieClip {

    public function MovieClip(mirror:Mirror):void {

        mirror.line;

    }// end function

}// end class

你也可以通过改进此 Mirror.line 只读:

class Mirror extends MovieClip {

    private var _line:MovieClip;

    public function get line():MovieClip {

        return _line;

    }// end function

    public function Mirror():void {

        _line = new MovieClip();

    }// end function

}// end class

这篇关于AS3:类之间导入类/共享变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆