这是一个脚本,当我点击一个对象时,它会打开一本带有页面翻转效果的小书。
我已经完成了几乎所有的事情,但我想要的是当我点击后退按钮时,一切都消失了,我回去只看到原始物体。它不起作用,因为它只删除其中一个页面!我尝试做一个数组,但它也没有工作,我也不是很好的数组。有人可以帮忙吗?
import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;
import flash.display.Sprite;
import flash.display.Loader;
var cont : DisplayObject;
var cont2 : DisplayObject;
var imgLoader : Loader;
//loads pages
for (var i:int=0; i<=4; i++){
imgLoader = new Loader();
imgLoader.contentLoaderInfo.addEventListener(Event.INIT, onLoadJPEG);
imgLoader.load(new URLRequest(""+i+".png"));
}
var imgLoader2 : Loader;
//loads back button
imgLoader2 = new Loader();
imgLoader2.contentLoaderInfo.addEventListener(Event.INIT, onLoadSketch);
imgLoader2.load(new URLRequest("voltaatrassketchbook.png"));
function onLoadJPEG (e : Event) : void {
cont = e.target.loader;
cont.x =250;
cont.y =50;
cont.width = (445-100)/2;
cont.height = (604-100)/2;
addChild(cont);
cont.addEventListener(MouseEvent.MOUSE_UP, FlipPage);
}
function onLoadSketch (e : Event) : void {
cont2 = e.target.loader;
cont2.x =450;
cont2.y =300;
cont2.width = 181/2;
cont2.height = 127/2;
addChild(cont2);
cont2.addEventListener(MouseEvent.MOUSE_UP, volta);
}
function FlipPage(e:MouseEvent):void{
setChildIndex(DisplayObject(e.currentTarget), this.numChildren - 1);
if (e.currentTarget.rotationY == 0) {
var myTween:Tween = new Tween(e.currentTarget, "rotationY",
Regular.easeInOut,0, 180, 1, true);
}
if (e.currentTarget.rotationY == 180) {
var myTween:Tween = new Tween(e.currentTarget, "rotationY",
Regular.easeInOut, 180, 0, 1, true);
}
}
//function to go back
function volta (e: MouseEvent): void {
gotoAndStop(1);
cont.visible=false;
cont2.visible=false;
}
答案 0 :(得分:0)
选项1
你可以使用数组。在开始加载页面之前,将它放在代码的顶部:
var pages:Array = [];
然后将其作为onLoadJPEG()
pages.push(cont);
这将在加载数据时将每个图像添加到数组中。
然后在volta()
中,您可以遍历数组并使每个图像不可见
for(var i:int = 0; i < pages.length; i++) {
DisplayObject(pages[i]).visible = false;
}
选项2
另一种方法是将所有图像添加到容器Sprite中,然后您只需要使容器Sprite不可见。
在加载页面之前将其添加到代码顶部:
var pages:Sprite = new Sprite();
addChild(pages);
然后在onLoadJPEG()
中添加cont作为容器的子项
pages.addChild(cont);
然后在volta()
:
pages.visible = false;
如果您使用此方法,请不要忘记在FlipPage()
内的容器上调用setChildIndex():
pages.setChildIndex(DisplayObject(e.currentTarget), this.numChildren - 1);