在MovieClip中访问MovieClip

时间:2013-04-12 16:28:20

标签: actionscript-3 oop flash-cs5

我有一个名为Tile的MovieClip,它有自己的类。我在for循环中有以下代码,它创建了一个网格。

var tile:MovieClip = new Tile();
tile.gotoAndStop(Floor1[i][u]+1);
tile.x = ((u-i)*tileh)+365;
tile.y = ((u+i)*tileh/2)+70;
addChild(tile);

tile.addEventListener(MouseEvent.ROLL_OVER, mouseover);

现在,Tile中有另一个名为Outline的动作片。这不是一个阶级。我想要做的是当我用鼠标滚动tile变量时,让Outline动画片段转到一个帧。

以下是鼠标事件的功能。我已经尝试过event.currentTarget.Outline.gotoAndStop(3)但它似乎不起作用。我收到一个引用错误#1069:在Tile上找不到属性大纲,并且没有默认值。

function mouseover(event:MouseEvent)
        {
            event.currentTarget.Outline.gotoAndStop(3);
        }

1 个答案:

答案 0 :(得分:1)

Outline(所有变量应该是小写的,顺便说一下骆驼的情况。资本意味着它是一个类名)一个公共变量?您应该在全局范围内声明Outline,如下所示:

package com.blah.blah
{
    public class Tile extends DisplayObjectContainer {

        public var outline:DisplayObject;

        public function Tile() {
            // instantiate outline here
        }
    }
}

访问修饰符的基本说明:

  • 公开:可以从任何班级访问
  • 私有:只能从
  • 中声明的类进行访问
  • 内部:只能由同一个包中的类访问
  • 静态:只存在一个实例,只能通过类访问 范围(Class.function())
  • 受保护:只有扩展该类的类才能访问该对象
  • 最终:儿童无法覆盖此功能