blog.Ring.idv.tw

AS3 - Timeline_N

AS3 - Timeline_N


在上一篇「AS3在Document Class和Timeline」曾探討過將AS3程式寫在時間軸的時候,Flash編譯器會自動產生了一個Dynamic Class「MainTimeline」,那如果在Flash IDE建一個「MovieClip」,並在該元件的某個影格內加上「stop()」程式,而經由Flash CS4編譯器處理後會如何呢?

Decompiling:

package test_fla
{
    import flash.display.*;

    dynamic public class Timeline_1 extends MovieClip
    {
        public function Timeline_1()
        {
            addFrameScript(61, this.frame62);
            return;
        }
        function frame62()
        {
            stop();
            return;
        }
    }
}

如同上述的程式碼,在主時間軸的影格寫下AS3程式的話,Flash會產生「MainTimeline」Dynamic Class,若是在任一「MovieClip」內寫AS3程式,則會產生「Timeline_N」的Dynamic Class,而「N」整數就取決於Flash編譯器所決定的,不過我們也可以透過「getQualifiedClassName(this);」來取得該元件的類別名稱(如:Timeline_1),如此,既然知道該元件對應的類別是否就能如法泡製的複製一份呢?答案是肯定的,如下:

var rect:MovieClip = new Timeline_1();
rect.x = 100;
addChild(rect);

另外值得注意的是,就算只是寫下註解的字元「//」也會產生如下的程式碼:

package test_fla
{
    import flash.display.*;

    dynamic public class Timeline_1 extends MovieClip
    {

        public function Timeline_1()
        {
            addFrameScript(61, this.frame62);
            return;
        }
        function frame62()
        {
            return;
        }
    }
}

所以可見Flash編譯器在這部份未來仍然有值得改善的空間!

2009-12-10 23:25:15

1 comments on "AS3 - Timeline_N"

  1. 1. rolex homage 說:

    這測試看起來非常有價值.

    2010-11-25 16:39:55

Leave a Comment

Copyright (C) Ching-Shen Chen. All rights reserved.

::: 搜尋 :::

::: 分類 :::

::: Ads :::

::: 最新文章 :::

::: 最新回應 :::

::: 訂閱 :::

Atom feed
Atom Comment