Actionscript 3 将对象放在前面,同时在父对象上保留相同的子索引。AS3/FLEX

Actionscript 3 将对象放在前面,同时在父对象上保留相同的子索引。AS3/FLEX,actionscript-3,flash,apache-flex,actionscript,Actionscript 3,Flash,Apache Flex,Actionscript,当我们点击一个图像时,它应该作为所选图像出现在前面,但我不想更改该图像的索引值 canvas1.setChilIndex(Image(event.target), numChildern-1) 上面的行正在更改所选图像的索引值,并将其设置为最大值-1(例如:5-1=4作为索引值)。我需要上面的线,保持图像相同的索引替代 非常感谢您的帮助。这是不可能的,因为在flash中,子索引是绘图顺序的唯一标准 如果要保持添加图像的顺序,可以存储图像,例如,在数组中,则每个下一项都将按添加顺序进行索引。这

当我们点击一个图像时,它应该作为所选图像出现在前面,但我不想更改该图像的索引值

canvas1.setChilIndex(Image(event.target), numChildern-1) 
上面的行正在更改所选图像的索引值,并将其设置为最大值-1(例如:5-1=4作为索引值)。我需要上面的线,保持图像相同的索引替代


非常感谢您的帮助。

这是不可能的,因为在flash中,子索引是绘图顺序的唯一标准


如果要保持添加图像的顺序,可以存储图像,例如,在数组中,则每个下一项都将按添加顺序进行索引。

这是不可能的,因为在flash中,子索引是绘图顺序的唯一标准


如果要保留添加图像的顺序,可以存储图像,例如,在数组中,则下一个项目将按添加顺序具有索引。

您可以做的是,在单击处理程序中存储所单击项目的索引,然后在下一次单击时(或在需要时),将项目发送回其上一个索引:

var previousImg:Image;
var previousIndex:int;

function selectImage(img:Image):void {
    deselectImage(); //if there is already a selected image, put it back before moving this new one to the top

    previousImg = img;    
    previousIndex = canvas1.getChildIndex(img);
    canvas1.addChild(img); //brings it to the front
}

function deselectImage():void {
    if(previousImg){
        canvas1.setChildIndex(previousImage, previousIndex);
        previousImg = null;  //null the var in case you call this method manually
    }
}
因此,在单击处理程序中,执行以下操作,而不是问题中的行:

selectImage(Image(event.target));

使用此方法,无论何时调用
选择image
,它都会将最后一次单击放回它所属的位置。如果需要,您也可以手动调用
取消图像

您可以做的是,在单击处理程序中存储所单击项目的索引,然后在下一次单击时(或在需要时),将项目发送回其上一个索引:

var previousImg:Image;
var previousIndex:int;

function selectImage(img:Image):void {
    deselectImage(); //if there is already a selected image, put it back before moving this new one to the top

    previousImg = img;    
    previousIndex = canvas1.getChildIndex(img);
    canvas1.addChild(img); //brings it to the front
}

function deselectImage():void {
    if(previousImg){
        canvas1.setChildIndex(previousImage, previousIndex);
        previousImg = null;  //null the var in case you call this method manually
    }
}
因此,在单击处理程序中,执行以下操作,而不是问题中的行:

selectImage(Image(event.target));

使用此方法,无论何时调用
选择image
,它都会将最后一次单击放回它所属的位置。如果您愿意,您也可以手动调用
取消图像

当我看到您的问题时,我的想法与上面伦敦药物公司和罗曼公司的建议相同。然而,你的问题很简单,所以答案是不可能的

如果我不知道应用程序的流程,情况会很复杂

例如,如果在选择图像后的运行时将图像添加到画布中,那么要回滚的索引顺序是什么

我的建议是:
您可以设置要保持索引顺序的切点,然后使用循环查找所有图像的索引并将其保留在数组中。当用户完成播放后,将索引回滚到切点

当我看到你的问题时,我的想法与上面伦敦和罗马的建议相同。然而,你的问题很简单,所以答案是不可能的

如果我不知道应用程序的流程,情况会很复杂

例如,如果在选择图像后的运行时将图像添加到画布中,那么要回滚的索引顺序是什么

我的建议是:
您可以设置要保持索引顺序的切点,然后使用循环查找所有图像的索引并将其保留在数组中。当用户完成播放后,将索引回滚到切点

我想你不能把图像放在前面,但不想改变索引。是的@michael,我的意思是一样的。你对此有什么建议吗?我想你不能把图片放在前面,但不想改变索引。是的@michael,我的意思是一样的。你对此有什么建议吗。