2011-06-02 74 views
0

我正在構建一個自定義預加載器,它不同於RIA中常見的「傳統」滑動條。預加載器使用100條直線的白色激光燈,並共同指示進度條。讓我描述它是如何工作之前,我問我的問題:ActionScript 3阿爾法補間

................. ...... ,,,,,,,,, ::::::::::::::::::::::::: BBBBBBBB等等......

上面的字符串捕捉了preloader指示器的精神。在這個例子中,角色越大越胖,我的實際預加載器中的激光越亮:

  1. 最右邊的激光指示當前加載的百分比。這也是最亮的激光。
  2. 所有其他拖尾激光器變得越來越暗,直到它們變成完全黑色,就好像它們已經在屏幕後面燒了一個整體。

步驟 「2」 是在事情變得棘手。出於某種原因,除少數隨機激光外,試驗激光不會變暗。這裏是代碼控制亮度的片段(或者,爲我所用呢,alpha屬性)網點的:

... more code ... 

//Build the dots according the configuration and load status parameters 
    private function buildDots(x:int, y:int):void { 
    //Draw the dot, details not shown 
    var dot:Shape = new Shape(); 

    //Begin the transitioning 
    this.fadeOn(dot); 
    } 

//Fade a dot to full brightness 
    private function fadeOn(dot:Shape):void { 
    var fadeOn:Tween = new Tween(dot, "alpha", None.easeNone, 0, 1, this.fadeOnTime, true); 

     fadeOn.addEventListener(TweenEvent.MOTION_FINISH, fadeOff); 
    } 

//Fade a dot to black 
    private function fadeOff(e:TweenEvent):void { 
    var fadeOff:Tween = new Tween(e.target.obj, "alpha", None.easeNone, 1, .2, this.fadeOffTime, true); 
    } 

... more code ... 

可能有人請告訴我在哪裏,我錯了?這些細節可能有所幫助:

  1. 整個預加載器位於自定義類中。
  2. 激光燈完全由代碼創建,無需訪問庫。

請讓我知道如果我能提供任何更多的細節。我會盡可能多地獎勵一個很好的答覆/反饋。

謝謝你的所有時間!

回答

0

我看到的唯一的事情,隨便地,是你是不是從你的fadeOn可變刪除事件偵聽器。這是我第一件要注意的事情 - 我對補間瞭解不多,但我知道你的事件監聽器會導致變量「fadeOn」的存在時間超過它應該存在的時間,因爲它有一個引用。

您可能需要發佈更多的代碼,雖然。也許有更多經驗的人可以更多地瞭解一些情況。