0

我有一个名为 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。它不是一门课。我想要做的是当我用鼠标滚动平铺变量时让大纲动画剪辑转到一个帧。

下面是鼠标事件的函数。我试过 event.currentTarget.Outline.gotoAndStop(3) 但它似乎不起作用。我收到参考错误 #1069:在 Tile 上找不到属性大纲,并且没有默认值。

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

1 回答 1

1

Outline所有变量都应该小写,顺便说一下驼峰式。大写暗示它是一个类名)是公共变量吗?您应该在全局范围内声明 Outline,如下所示:

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

        public var outline:DisplayObject;

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

访问修饰符的基本解释:

  • Public : 可以从任何类访问
  • Private : 只能从它声明的类访问
  • 内部:只能由同一包中的类访问
  • 静态:只存在一个实例,只能通过类作用域访问(Class.function())
  • 受保护的:只有扩展该类的类才能访问该对象
  • Final : 孩子不能覆盖该功能
于 2013-04-12T16:46:08.127 回答