2010-11-18 15 views
0

Flex 3 with Flex 9 kullanıyorum.Esnek 3: Zamanlayıcı Durmuyor

1 saniyeden sonra çalışacak bir zamanlayıcı yapmaya çalışıyorum. Maalesef, zamanlayıcı tekrar ediyor. Nasıl durmasını sağlayabilirim?

public var myTimer:Timer = new Timer(1000, 1); 


private function visFunc():void { 

    myTimer.addEventListener(TimerEvent.TIMER_COMPLETE, imageProducer); 
    myTimer.start(); 

} 

private function imageProducer(event:TimerEvent):void { 


    var img:Image = new Image; 
    img.source = image_path; 
    img.x = 56; 
    img.y = (tf.y + tf.height + 40); 
    radioVBox.addChildAt(img, 0); 
    this.height = radioVBox.y + radioVBox.height +110; 
    myTimer.stop(); 
    myTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, imageProducer); 
} 

Teşekkür ederiz.

-Laxmidi

+0

visFunc nasıl çağrılır? Birden çok kez çağrılmadığından emin misin? – wajiw

cevap

1

aşağıdaki benim kodunu değiştirmek ve bazı testler, ben herhangi bir büyük sorunlar görmüyorum çünkü ... ANCAK sen ayıklama değilseniz ve/veya olmasın yaparım Flashplayer çalıştıran bir hata ayıklayıcı sürümü var, bir şey vbox.addChild satırında (örneğin - boş vbox) şişiyor olabilir. ImageProducer işleviniz güzelse, sorununuz 'arama' işlevinin dışındadır.

private var myTimer : Timer; 

private function visFunc():void 
{ 
    if(myTimer != null) 
    { 
     tearDownTimer(); 
    } 

    myTimer = new Timer(1000,1); 
    myTimer.addEventListener(TimerEvent.TIMER_COMPLETE, imageProducer); 
    myTimer.start(); 

} 

private function tearDownTimer():void 
{ 
    if(myTimer) 
    { 
     myTimer.stop(); 
     myTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, imageProducer); 
     myTimer = null; 
    } 
} 


private function imageProducer(event:TimerEvent):void 
{ 
    var img:Image = new Image(); 
    img.source = image_path; 
    img.x = 56; 
    img.y = (tf.y + tf.height + 40); 
    radioVBox.addChildAt(img, 0); 
    this.height = radioVBox.y + radioVBox.height +110; 

    tearDownTimer(); 
} 
+0

Merhaba Jeremy, Yardım için çok teşekkür ederim. Gerçekten aptalca bir hata yaptım. Yanlışlıkla visFunc işlevini birden çok kez çağırıyordum. Yine, yardım için teşekkürler. – Laxmidi

İlgili konular