2011-07-29 11 views
0

私はas3を使ってフラッシュでサイトを構築しています。私はホームページにXMLスライドショーを実装しましたが、ページを変更すると消えません。他のページでそれを削除する方法は誰にでも分かりますか?ウェブサイトのAS3スライドショーの問題

スライドショーコード:

import fl.transitions.Tween; 
import fl.transitions.easing.*; 
import fl.transitions.TweenEvent; 

var my_speed:Number; 
var my_total:Number; 
var my_images:XMLList; 

var my_loaders_array:Array = []; 
var my_success_counter:Number = 0; 
var my_playback_counter:Number = 0; 

var my_slideshow:Sprite = new Sprite(); 
var my_image_slides:Sprite = new Sprite(); 
var my_timer:Timer; 
var my_prev_tween:Tween; 
var my_tweens_array:Array = []; 

var my_xml_loader:URLLoader = new URLLoader(); 
my_xml_loader.load(new URLRequest("slideshow_home.xml")); 
my_xml_loader.addEventListener(Event.COMPLETE, processXML); 


function processXML(e:Event):void 
{ 

var my_xml:XML = new XML(e.target.data); 
my_speed = my_xml. @ SPEED; 
my_images = my_xml.IMAGE; 
my_total = my_images.length(); 

loadImages(); 

my_xml_loader.removeEventListener(Event.COMPLETE, processXML); 
my_xml_loader = null; 

} 

function loadImages():void 
{ 
for (var i:Number = 0; i < my_total; i++) 
{ 

    var my_url:String = my_images[i]. @ URL; 
    var my_loader:Loader = new Loader(); 
    my_loader.load(new URLRequest(my_url)); 
    my_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete); 
    my_loaders_array.push(my_loader); 

} 
} 

function onComplete(e:Event):void 
{ 

my_success_counter++; 
if (my_success_counter == my_total) 
{ 

    startShow(); 

} 

var my_loaderInfo:LoaderInfo = LoaderInfo(e.target); 
my_loaderInfo.removeEventListener(Event.COMPLETE, onComplete); 

} 

function startShow():void 
{ 

addChild(my_slideshow); 
my_slideshow.addChild(my_image_slides); 

nextImage(); 
my_timer = new Timer(my_speed*5000); 
my_timer.addEventListener(TimerEvent.TIMER, timerListener); 
my_timer.start(); 

} 

function nextImage():void 
{ 

var my_image:Loader = Loader(my_loaders_array[my_playback_counter]); 
my_image_slides.addChild(my_image); 
my_image.x = (stage.stageWidth - my_image.width)-160; 
my_image.y = (stage.stageHeight - my_image.height)-100; 
new Tween(my_image,"alpha",Strong.easeOut,0,1,1,true); 
my_tweens_array[0] = new Tween(my_image,"alpha",Strong.easeOut,0,1,1,true); 

} 

function timerListener(e:TimerEvent):void 
{ 
hidePrev(); 


my_playback_counter++; 
if (my_playback_counter == my_total) 
{ 
    my_playback_counter = 0; 
} 
nextImage(); 

} 

function hidePrev():void 
{ 

var my_image:Loader = Loader(my_image_slides.getChildAt(0)); 
my_prev_tween = new Tween(my_image,"alpha",Strong.easeOut,1,0,1,true); 
my_prev_tween.addEventListener(TweenEvent.MOTION_FINISH, onFadeOut); 
} 

function onFadeOut(e:TweenEvent):void 
{ 
my_image_slides.removeChildAt(0); 

} 

答えて

0
my_slideshow.visible = false; 

uはスライドショー目に見えないことができ、これを使用しました。

しかし、スライドショーはまだバックグラウンドで実行されているため、これは馬鹿げた方法です。

クラスレベルのプログラムを使用している場合、あなたは非常に簡単にremovechildメソッドを使用してステージからスライドショーを削除できます。この方法は素晴らしいです。

0

これを別のクラスとして作成し、メインタイムラインでインスタンス化します。この方法で簡単に取り除くことができます。