0

このフォト ギャラリーには 2 つの外部クラスがあります。このコードは、ギャラリーをインポートして動作させるためにクラスを呼び出すタイムライン コードです。これまでのところ問題はありません。このフォト ギャラリーをメディア プレゼンテーションや Web サイト、または複数のレイヤーを持つものに配置したいときに問題が発生します。ギャラリーが呼び出された後もそこにとどまり、そこに戻るたびにギャラリーが増えます。コード付きフレーム。

したがって、フレーム番号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");
    }
     }
    }
 }
4

1 に答える 1

0

imgLoader削除したいギャラリーの場合、これが役立ちます:

if (objectParent.getChildByName("imgLoader") != null) {
     trace("imgLoader exsits");
     objectParent.removeChild("imgLoader");
}

基本的に、これは存在するかどうかを確認し、imgLoader存在する場合は削除します。

于 2013-05-16T15:20:24.927 に答える