此图像滚动条由容器mc组成,容器mc容纳7个动画片段,每个影片剪辑都有图像和边框。每个箭头键按下(从另一个类),边框从alpha 0到1。滚动器本身一直有效,直到我尝试set'numChildren -1的'next'的setChildIndex。然后它会影响所有其他mc并将其全部搞砸。有没有更好的方法来实现这个向前向后滚动?谢谢你的建议。我想要实现的是让每个'持有者'成为容器内的最高深度。
package
{
import com.greensock.TweenMax;
import flash.display.Bitmap;
import flash.display.Loader;
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.net.URLLoader;
import flash.net.URLRequest;
public class ImageBank extends MovieClip
{
private var loader:Loader;
private var req:URLRequest;
private var container:Sprite;
private var border:Border;
private var holder:Sprite;
private var numImages;
private var currentImage:uint = 0;
private var prevImage:uint;
private var borderNext:*;
private var borderLast:*;
public function ImageBank(path:String, numImages:uint)
{
this.numImages = numImages
container = new Sprite()
addChild(container);
for (var i:uint = 0; i < numImages; i++) {
border = new Border();
border.alpha = 0;
holder = new Sprite()
holder.x = i * 165;
loader = new Loader()
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaded);
req = new URLRequest(path + 'poster_' + i + '.png');
loader.load(req);
loader.x += 4;
loader.y += 3;
loader.alpha = .8;
holder.addChild(border);
holder.addChild(loader);
container.addChild(holder);
}
}
public function removeBorder():void {
TweenMax.to(borderNext, .4, {alpha:0});
}
public function tweenNext():void {
var next = container.getChildAt(currentImage);
TweenMax.to(next, .4, {transformAroundCenter:{scale:1.1}});
container.setChildIndex(next, container.numChildren-1);
borderNext = next.getChildAt(0)
TweenMax.to(borderNext, .4, {alpha:1});
if (currentImage > 0) {
var last = container.getChildAt(currentImage-1);
TweenMax.to(last, .4, {transformAroundCenter:{scale:1}});
borderLast = last.getChildAt(0)
TweenMax.to(borderLast, .5, {alpha:0});
}
if (currentImage < 6){
currentImage ++;
prevImage = currentImage -1
}
}
public function tweenPrev():void {
var next = container.getChildAt(prevImage);
TweenMax.to(next, .4, {transformAroundCenter:{scale:1.1}});
container.setChildIndex(next, container.numChildren-1);
var borderNext = next.getChildAt(0)
TweenMax.to(borderNext, .5, {alpha:1});
if (prevImage < 7) {
var last = container.getChildAt(prevImage+1);
TweenMax.to(last, .4, {transformAroundCenter:{scale:1}});
var borderLast = last.getChildAt(0)
TweenMax.to(borderLast, 1, {alpha:0});
}
if (prevImage > 0) {
prevImage --;
currentImage --;
}
}
private function onLoaded(event:Event):void {
//loaded
}
}
}