AS3新手。尝试做一个简单的掩码练习,但由于某种原因,当我向'myMask'添加事件监听器时,事件不会触发。我尝试将'myMask'和'theMaskee'作为精灵和电影剪辑,但没有运气。如果我没有将'myMask'作为掩码分配给'theMaskee',它会触发。如果我将监听器直接添加到舞台上,它也可以工作,但最终我想把很多东西放在舞台上,如果它必须听同一个事件但是执行几个功能,我担心会有冲突......特别是如果我一次只需要一个。我查看了教科书以及其他人的API和面具相关问题,但我找不到与我的具体情况有关的任何内容。 (此代码直接写在时间轴中)
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.sampler.NewObjectSample;
import flash.events.MouseEvent;
var temp = new backGround();
var myBG:Bitmap = new Bitmap(temp);
temp = new splashMaskee();
var theMaskee:Bitmap = new Bitmap(temp);
var myMask = new MovieClip();
myMask.graphics.beginFill(0x000000, 0);
myMask.graphics.drawRect(0, 0, 800, 600);
myMask.graphics.endFill();
myMask.cacheAsBitmap = true;
theMaskee.cacheAsBitmap = true;
theMaskee.mask = myMask;
addChild(myBG);
addChild(theMaskee);
addChild(myMask);
myMask.addEventListener(MouseEvent.CLICK, myMaskClick);
//stage.addEventListener(MouseEvent.CLICK, myMaskClick);
function myMaskClick(e:MouseEvent):void
{
trace("click");
myMask.graphics.beginFill(0x000000, 1);
myMask.graphics.drawCircle(mouseX, mouseY, 30);
}
感谢您抽出时间
答案 0 :(得分:1)
您需要将侦听器添加到马斯卡,而不是掩码。 AS3中的掩码不实现IEventDispatcher,因此无法捕获和分派事件。
答案 1 :(得分:0)
这样做:
theMaskee.addEventListener(MouseEvent.CLICK, myMaskClick);
它应该有效。 :)
Masks不接受任何鼠标/键盘事件,因为它只是一个掩码而不是实际出现在显示列表中。