Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 如何使用链接类访问动态/静态movieclip?_Actionscript 3_Flash Cs5 - Fatal编程技术网

Actionscript 3 如何使用链接类访问动态/静态movieclip?

Actionscript 3 如何使用链接类访问动态/静态movieclip?,actionscript-3,flash-cs5,Actionscript 3,Flash Cs5,嗨,这个问题仍然困扰着我。看起来很简单。 我在lib和stage中得到了movieclips,其中有一个链接类“Box.as”,另一个链接到“Circle.as”。 我想从Circle.as访问Box.as的movieclip,反之亦然 public class Circle extends MovieClip { private var _circle:MovieClip; private var _box:Box; public function Circle()

嗨,这个问题仍然困扰着我。看起来很简单。 我在lib和stage中得到了movieclips,其中有一个链接类“Box.as”,另一个链接到“Circle.as”。 我想从Circle.as访问Box.as的movieclip,反之亦然

public class Circle extends MovieClip
{
    private var _circle:MovieClip;
    private var _box:Box;


    public function Circle()
    {
        _circle = new MovieClip();

        if (stage) onStage();
        else this.addEventListener(Event.ADDED_TO_STAGE,onStage);


    }
    private function onStage(e:Event = null)
    {
        _circle = stage.getChildByName("blue_circle") as MovieClip;
        this.addEventListener(Event.ENTER_FRAME,hitTarget);

    }

    private function hitTarget(e:Event):void
    {

        if (_circle.hitTestObject(_box.mc)) //test if 2 movieclips are colliding
        { // _box.mc is just created the same as _circle
            trace("hi");
        }

    }
这个密码不起作用。我想使用一个即使movieclip不在舞台上也能访问的软件(没有实例名)。

希望你能帮助我。谢谢。

看来你真的很接近了!您只是忘记了创建类的新实例
Box
。因此,在您的
公共函数圈()中只需添加

_box = new Box();
让我知道这是否有效。如果没有,你的链接可能有问题

您的整个代码将如下所示

    public class Circle extends MovieClip
{
    private var _circle:MovieClip;
    private var _box:Box;


    public function Circle()
    {
        _box = new Box();
        _circle = new MovieClip();

        if (stage) onStage();
        else this.addEventListener(Event.ADDED_TO_STAGE,onStage);


    }
    private function onStage(e:Event = null)
    {
        _circle = stage.getChildByName("blue_circle") as MovieClip;
        this.addEventListener(Event.ENTER_FRAME,hitTarget);

    }

    private function hitTarget(e:Event):void
    {

        if (_circle.hitTestObject(_box.mc)) //test if 2 movieclips are colliding
        { // _box.mc is just created the same as _circle
            trace("hi");
        }

    }

哦对不起,我只是忘了在我的帖子里加上这个。但这是真正的代码,仍然不起作用。我还试着追踪_box.mc或_圆圈,但它追踪空。如果你链接正确,我肯定这就是你所需要的,我已经做了一百万次了。仔细检查类是否位于正确的包中,链接变量时是否正确大写,以及是否使用正确的名称保存文件。也许还可以把你遇到的错误贴出来。是说不能访问空对象?也有可能您没有导入某些内容…请确保您已进行了所有正确的导入…还有一件事要尝试。尝试添加child(_-box),然后运行代码,看看这是否至少有效。