0

actionscriptプリローダーはMovieClipを拡張する必要がありますか?

...
public class Preloader extends MovieClip 
{

    public function Preloader() 
    {
        if (stage) {
            stage.scaleMode = StageScaleMode.NO_SCALE;
            stage.align = StageAlign.TOP_LEFT;
        }
        addEventListener(Event.ENTER_FRAME, checkFrame);
        loaderInfo.addEventListener(ProgressEvent.PROGRESS, progress);
        loaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioError);

        // TODO show loader
    }
...

または、スプライトを拡張することもできますか?

4

3 に答える 3

3

プリローダーは、実際に別のSWFをロードしている場合にのみ、スプライトを拡張できます。プリローダーが組み込まれたSWFを作成する場合、Flash Playerはフレームを順番にロードするため、2つのフレームが必要です。これが、プリローダーが機能するために必要なSWFの一部をロードして表示できる唯一の方法です。また、MovieClipが必要なフレームの場合、スプライトにはフレームがありません。

于 2012-10-05T08:00:51.223 に答える
0

ベスパーの答えの後。いじりました

private function checkFrame(e:Event):void 
    {
        if (currentFrame == totalFrames) 
        {
            stop();
            loadingFinished();
        }
    }

Spriteは、currentFrame、totalFrames、さらにはstopメソッドにもアクセスできません。ただし、MovieClipはそうします。

于 2012-10-05T08:11:27.000 に答える
0

はい、拡張できますSprite

フレームイベントの代わりに、とを使用しTimerEventますTimer。何らかの理由でフレームベースまたは時間ベースの参照をすべて避けたい場合は、を聞くことができますProgressEvent。いずれかのイベントのハンドラーで「プリローダー」グラフィックを作成/ロードおよび操作します。

これは通常必要なものよりも難しく、MovieClip機能が重複しているため、このルートを使用するにはかなりの理由が必要になるでしょう。

于 2012-10-05T19:14:11.197 に答える