当我们点击图像时,它应该作为所选图像出现在前面,但我不想更改该图像的索引值
canvas1.setChilIndex(Image(event.target), numChildern-1)
上述行正在更改所选图像的索引值并将其设置为最大值-1(例如:5-1 = 4作为索引值)。我需要替代上面一行,为图像保留相同的索引。
感谢任何帮助。
答案 0 :(得分:1)
您可以做的是,在您的点击处理程序中存储单击的项目的索引,然后在下一次单击(或随时),将项目发送回其先前的索引:
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));
使用此方法,只要您调用selectImage
,它就会将最后一次点击一个回到它所属的位置。如果您愿意,也可以手动拨打deselectImage
。
答案 1 :(得分:0)
这是不可能的,因为在flash中,子索引是绘制顺序的唯一标准。
如果你想保持添加图像的顺序,你可以存储图像,例如,在数组中,然后每个下一个项目将按照添加的顺序具有索引。
答案 2 :(得分:0)
当我看到你的问题时,我有与LondonDrugs和Roman建议的相同的想法。但是,你的问题很简单,所以答案是不可能的。
如果我不知道应用程序的流程,情况会非常复杂。
例如,如果您在选择图像后的运行时将图像添加到画布,那么您希望回滚哪个索引顺序?
我的建议: 您可以设置要保持索引顺序的切割点,然后使用循环查找所有图像的索引并将其保留在数组中。用户完成播放后,将索引回滚到切割点。