flash中的多个对象(在事件中检测对象)

flash中的多个对象(在事件中检测对象),flash,events,flash-cs3,Flash,Events,Flash Cs3,我想用3个选项创建一个类似刮痕的东西。第一个网站发送关于哪个字段正确的信息。然后flash用“错误”图像替换2个电影剪辑,用“良好”图像替换1个电影剪辑。我已经创建了scratch evect,但只在1个对象上工作。我不知道为什么 我甚至尝试了事件函数的复制。最好的方法是获取元素的索引。但是如何在事件函数中传递它呢 基本上,它只有3个带图像的黑色瓷砖。但为什么只有第一个对象起作用 我的代码是: function getFlashVars():Object { return Object(

我想用3个选项创建一个类似刮痕的东西。第一个网站发送关于哪个字段正确的信息。然后flash用“错误”图像替换2个电影剪辑,用“良好”图像替换1个电影剪辑。我已经创建了scratch evect,但只在1个对象上工作。我不知道为什么

我甚至尝试了事件函数的复制。最好的方法是获取元素的索引。但是如何在事件函数中传递它呢

基本上,它只有3个带图像的黑色瓷砖。但为什么只有第一个对象起作用

我的代码是:

function getFlashVars():Object {
    return Object(LoaderInfo(this.loaderInfo).parameters);
}

var m = 0;

function stopRys(myszka:MouseEvent):void {
    m = myszka.currentTarget.tabIndex;
    cover[m].removeEventListener(MouseEvent.MOUSE_MOVE, tworzMaske);
    image[m].removeEventListener(MouseEvent.MOUSE_MOVE, tworzMaske);
}

function startRys(myszka:MouseEvent):void {
    m = myszka.currentTarget.tabIndex;
    cover[m].addEventListener(MouseEvent.MOUSE_MOVE, tworzMaske);
    image[m].addEventListener(MouseEvent.MOUSE_MOVE, tworzMaske);
}

function tworzMaske(myszka:MouseEvent):void {
    m = myszka.currentTarget.tabIndex;
    image[m].visible = true;
    rysuj[m].graphics.lineStyle(1);
    rysuj[m].graphics.beginFill(0x000000);
    rysuj[m].graphics.drawCircle(mouseX, mouseY, 50);
    image[m].mask = rysuj[m];
}

var key1 = getFlashVars().key1;

var intWidth:Number = 200;
var intHeight:Number = 200;
var cover = new Array();
var image = new Array();
var rysuj = new Array();
var i:Number = 0;

for (i=0; i<3; i++) {
    cover[i] = new MovieClip();
    image[i] = new MovieClip();
    rysuj[i] = new Sprite();

    cover[i]._x = intWidth*i;
    cover[i]._y = 0;
    cover[i].tabIndex = i;
    cover[i]._width = intWidth;
    cover[i]._height = intHeight;
    cover[i].graphics.beginFill(0x000000);
    cover[i].graphics.drawRect(intWidth*i,0,intWidth,intHeight);
    cover[i].graphics.endFill();

    image[i]._x = intWidth*i;
    image[i]._y = 0;
    image[i].tabIndex = i;
    image[i]._width = intWidth;
    image[i]._height = intHeight;
    var myBitmapDataObject:przegrana = new przegrana(200, 200);
    var myImage:Bitmap = new Bitmap(myBitmapDataObject);
    image[i].addChild(myImage);

    addChild(cover[i]);
    addChild(image[i]);
    addChild(rysuj[i]);

    image[i].visible = false;

    image[i].addEventListener(MouseEvent.MOUSE_DOWN, startRys);
    cover[i].addEventListener(MouseEvent.MOUSE_DOWN, startRys);
    image[i].addEventListener(MouseEvent.MOUSE_OUT, stopRys);
    image[i].addEventListener(MouseEvent.MOUSE_UP, stopRys);

}
函数getFlashVars():对象{ 返回对象(LoaderInfo(this.LoaderInfo).parameters); } var m=0; 函数stopRys(myszka:MouseEvent):void{ m=myszka.currentTarget.tabIndex; cover[m]。removeEventListener(MouseEvent.MOUSE_MOVE,tworzMaske); 图像[m]。removeEventListener(MouseEvent.MOUSE_MOVE,tworzMaske); } 函数startRys(myszka:MouseEvent):void{ m=myszka.currentTarget.tabIndex; cover[m].addEventListener(MouseEvent.MOUSE_MOVE,tworzMaske); 图像[m]。addEventListener(MouseEvent.MOUSE_MOVE,tworzMaske); } 函数tworzMaske(myszka:MouseEvent):void{ m=myszka.currentTarget.tabIndex; 图像[m]。可见=真; rysuj[m].图形.线型(1); rysuj[m].图形.beginll(0x000000); rysuj[m].图形.drawCircle(mouseX,mouseY,50); 图像[m].mask=rysuj[m]; } var key1=getFlashVars().key1; 变量intWidth:Number=200; 八个变量:数值=200; var cover=新数组(); var image=新数组(); var rysuj=新数组(); 变量i:数值=0;
对于(i=0;i您甚至“无法”将自定义参数传递给侦听器。要知道哪个对象调度了事件,您可以使用myszka.target。

谢谢,我尝试将其作为选项卡索引传递,但还有更多问题:(主题中有更多信息