我找到了一个使用AS3(http://designreviver.com/tutorials/create-an-interactive-stack-of-photos/)在flash中创建一堆照片的教程。
我一直在努力制作照片堆栈的动态XML版本,我遇到了问题(显然:):
我有一个名为Polaroid的类,我使用循环将它的多个实例添加到舞台上,如下所示:
function processXML(e:Event):void {
var myXML:XML=new XML(e.target.data);
my_images=myXML.IMAGE;
my_total=my_images.length();
photoCount=my_total;
for (var i:Number = 1; i <= my_total; i++) {
imageNo=i;
this.addChild(new polaroid ).name="photo"+imageNo;
this.getChildByName("photo"+imageNo).addEventListener(MouseEvent.MOUSE_DOWN, photoSlideOut);
this.getChildByName("photo"+imageNo).rotation = Math.floor(Math.random()*(rotationRange*2))-rotationRange;
}
}
然后使用两个函数将照片滑出并更改其索引,使其落后于所有其他宝丽来实例。
function photoSlideOut(e:Event):void {
e.target.parent.setChildIndex(e.target, e.target.parent.numChildren - 1);
Tweener.addTween(e.target, {x: photoDestX, time: speed, transition: easeType, onComplete:photoSlideIn, onCompleteParams:[e.target]});
Tweener.addTween(e.target, {rotation: Math.floor(Math.random()*(rotationRange*2))-rotationRange, time: speed*2, transition: easeType});
}
function photoSlideIn(p:MovieClip):void {
p.parent.setChildIndex(p, 0);
Tweener.addTween(p, {x: photoOriginX, time: speed, transition: easeType});
}
photoSlideOut似乎工作正常并且photoslidein中的补间工作正常 - 我似乎无法更改已点击的宝丽来实例的子索引。
任何人都知道我在哪里出错?
非常感谢任何帮助。
答案 0 :(得分:0)
尝试使用currentTarget而不是target。