Actionscript:在父Sprite上应用click事件

时间:2013-03-08 16:39:08

标签: actionscript-3 displayobject

在其中添加了一些子:Loader个实例后,我遇到了点击事件的困难。

var wr:Sprite=new Sprite();
stage.addChild(wr);         
wr.graphics.drawRect(0,0,stage.width,stage.height);
wr.width=stage.width;
wr.height=stage.height;
wr.addEventListener('click',function():void{
    log('CLICKED!');
});
wr.addChild(el.sprite);

问题是点击事件仅在我点击el.sprite时才有效,但是当我点击舞台上的任何地方时,它都无效(不会触发点击事件)。

为什么会这样做?我没有在整个舞台上拉伸wr层吗?

我在flash DisplayObject列表机制中缺少什么或不理解?

我正在尝试将el.sprite(暂停按钮)放在wr(暂停层)的中心,并在整个wr层(整个舞台)上应用click事件。

我正在开发视频播放器。 :)

2 个答案:

答案 0 :(得分:1)

drawRect实际上并没有绘制任何东西,因为你没有设置填充。

在drawRect:

之前添加
wr.graphics.beginFill(0xFFFFFF, 0);

这会将填充设置为0 alpha白色(如果您希望它可见,请删除第二个参数)。现在,当你调用drawRect时,它可以绘制一些内容。

答案 1 :(得分:1)

Flash API中的Graphics对象本质上是一个有限状态机,这意味着你需要(1)告诉它开始,(2)给它一个或多个顺序命令,然后(3)告诉它停止

在这种情况下,您缺少的键是begin和end命令。最简单的是beginFill()和endFill()。您可以在AS3 documentation on Graphics

中查看完整列表

beginFill()接受两个参数 - 第一个是填充的颜色,第二个是填充的alpha。因此,如果你想要填充是不可见的,给它你想要的任何颜色(0很好),但也给它一个0的alpha。

另外,作为旁注,您不需要手动设置名为“wr”的对象的宽度和高度。绘制矩形后,其宽度和高度属性将反映矩形的大小。