我有一个叫做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中有另一个moveiclip叫做Outline。它不是一个类。我想做的是让Outline影片剪辑在我用鼠标滚动tile变量时转到一个帧。
下面是鼠标事件的函数。我尝试了event. currentarget . outline . gotoandstop(3),但似乎不起作用。我得到一个参考错误#1069:属性大纲没有找到瓷砖和没有默认值。
function mouseover(event:MouseEvent)
{
event.currentTarget.Outline.gotoAndStop(3);
}
是Outline
(所有变量都应该是小写的,驼峰式的)。资本暗示它是一个类名)一个公共变量?你应该在全局范围内声明Outline,如下所示:
package com.blah.blah
{
public class Tile extends DisplayObjectContainer {
public var outline:DisplayObject;
public function Tile() {
// instantiate outline here
}
}
}
访问修饰符的基本说明:
- Public:可以从任何类 访问
- Private:只能从在 中声明的类访问
- Internal:只能由同一包中的类访问
- Static:只存在一个实例,只能通过类访问范围(Class.function ())
- Protected:只有扩展了该类的类才能访问该对象
- Final:子函数不能覆盖