Actionscript 3 如何在AS3.0中单击任何其他按钮时删除多媒体资料呼叫?
所以我有一个带有2个外部类的照片库,这个代码是调用这些类来导入图片库并使其工作的时间线代码。 到目前为止还不错,当我想将此照片库放入媒体演示文稿、网站或具有超过1层的内容时,问题就开始了。调用后,该照片库会停留在那里,每次我带着代码返回该帧时,都会增加更多的照片库 所以我想知道是否有可能创建一些简单的代码来添加到其中,比如说,如果我不在第13帧上,就删除库,或者如果我不在那个特定帧上,就停止调用类,诸如此类。 我尝试了“removeChild”,它解决了一半的问题,它没有完全移除画廊,但至少阻止了增长效应 当我转到另一个框架/页面时,我需要的只是一种删除库的方法。 有人能帮我吗Actionscript 3 如何在AS3.0中单击任何其他按钮时删除多媒体资料呼叫?,actionscript-3,events,layer,photo-gallery,Actionscript 3,Events,Layer,Photo Gallery,所以我有一个带有2个外部类的照片库,这个代码是调用这些类来导入图片库并使其工作的时间线代码。 到目前为止还不错,当我想将此照片库放入媒体演示文稿、网站或具有超过1层的内容时,问题就开始了。调用后,该照片库会停留在那里,每次我带着代码返回该帧时,都会增加更多的照片库 所以我想知道是否有可能创建一些简单的代码来添加到其中,比如说,如果我不在第13帧上,就删除库,或者如果我不在那个特定帧上,就停止调用类,诸如此类。 我尝试了“removeChild”,它解决了一半的问题,它没有完全移除画廊,但至少阻止
import flashfold.as3.*;
var imgLoader:ImageLoader;
var thumbsToLoad:Array=[];
var menuColumnItems:int=6;
var menuTotItems:int=30;
var menuThumbs:Vector.<Bitmap>=new Vector.<Bitmap>();
var menuBigPics:Vector.<String>=new Vector.<String>();
var menu:SpinnerMenu;
btnSpin.visible=false;
errorBox.wordWrap=true;
errorBox.visible=true;
errorBox.text="Loading thumbnails...";
populatePics();
prepImgs(thumbsToLoad);
function prepImgs(a:Array):void {
imgLoader=new ImageLoader();
imgLoader.addEventListener(ImageLoader.LOAD_ERROR,errorLoading);
imgLoader.addEventListener(ImageLoader.IMGS_LOADED,allLoaded);
imgLoader.loadImgs(a);
}
function errorLoading(e:Event):void {
errorBox.visible=true;
errorBox.text="There has been an error loading images. The server may be busy.";
}
function allLoaded(e:Event):void {
errorBox.visible=false;
initApp();
}
function initApp():void {
var i:int;
for (i=0; i<menuTotItems; i++) {
menuThumbs[i]=imgLoader.bitmapsArray[i];
}
menu=new SpinnerMenu(menuThumbs,menuBigPics,menuColumnItems);
this.addChild(menu);
trace("oi");
menu.x=72;
menu.y=50;
menu.menuInfoBox.x=160;
menu.menuInfoBox.y=90;
this.transform.perspectiveProjection.fieldOfView=70;
this.transform.perspectiveProjection.projectionCenter=new
Point(menu.x+menu.menuWidth/2,menu.y+menu.menuHeight/2);
btnSpin.visible=true;
//We load the initial image.
menu.loadInitial();
}
function populatePics():void {
var i:int;
for (i=1; i<=menuTotItems; i++) {
thumbsToLoad[i-1]="small"+String(i)+".jpg";
}
for (i=1; i<=menuTotItems; i++) {
menuBigPics[i-1]="pic"+String(i)+".jpg";
trace('ok');
btnSpin.addEventListener(MouseEvent.CLICK, spinMenu);
function spinMenu(e:MouseEvent):void {
var r:Number=Math.random();
if (r<0.5) {
menu.doSpin("right");
} else {
menu.doSpin("left");
}
}
}
}
导入flashfold.as3.*;
var-imgLoader:ImageLoader;
var thumbsToLoad:Array=[];
var menuColumnItems:int=6;
变量菜单项:int=30;
变量menuThumbs:Vector.=新向量。();
变量menuBigPics:Vector.=新向量。();
变量菜单:喷丝头菜单;
btnSpin.visible=false;
errorBox.wordWrap=true;
errorBox.visible=true;
errorBox.text=“正在加载缩略图…”;
大众学();
预压(拇指加载);
函数prepImgs(a:数组):void{
imgLoader=newImageLoader();
imgLoader.addEventListener(ImageLoader.LOAD\u错误,errorLoading);
imgLoader.addEventListener(ImageLoader.IMGS_-LOADED,allLoaded);
imgLoader.loadImgs(a);
}
函数错误加载(e:事件):无效{
errorBox.visible=true;
errorBox.text=“加载图像时出错。服务器可能正忙。”;
}
函数allLoaded(e:事件):void{
errorBox.visible=false;
initApp();
}
函数initApp():void{
变量i:int;
对于(i=0;i如果imgLoader
是您要删除的库,则这将有助于:
if (objectParent.getChildByName("imgLoader") != null) {
trace("imgLoader exsits");
objectParent.removeChild("imgLoader");
}
基本上,这是检查imgLoader
是否存在,如果存在,它会将其删除。是否imgLoader
是您要删除的库?非常感谢,但它不起作用,我想我必须删除它的菜单,它会给我以下错误:1120:访问未定义的属性objectParent哦,我忘了提到我在flash cs4中工作,flash player 10.1作为3.0,我不知道,但它可能在TAX中有一些代码更改,可能是objectParent
应该更改为您的imgLoader
的任何父级stage
或this
或任何的地方>imgLoader
已添加到。如果要删除菜单,则与上面的基本代码相同如果(this.getChildByName(“菜单”)!=null){trace(“menuexsits”);this.removeChild(“菜单”);}
删除menugreat应该对您有帮助!请将答案标记为正确,以帮助他人,如果有帮助,请可能对我以前的评论进行更新:-)