1

メニュー項目自体のムービー クリップが動的にロードされるメニュー システムを作成する Flash プロジェクトを作成しています。

メニューに十分な項目があり、メニュー領域よりも大きくなると、スクロールバーが表示されるようにします。

メニュー領域の上にマスクを配置して、ロードされたコントロールがマスク内で上下にスクロールするムービー クリップを作成できると考えていましたが、動的にロードされたムービー クリップがマスクに表示されないようです。

これについてインターネットで検索しましたが、見つけることができるすべてのスクロール バー チュートリアルは、動的に読み込まれたムービー クリップの領域ではなく、テキスト領域を扱っています。

誰かがこれについての良いチュートリアルを知っていますか、それを機能させるために数学のハックをたくさん作る必要がないように、これを行うためのエレガントな方法について提案がありますか?

ありがとう

4

1 に答える 1

1

あなたが何を求めているのか正確にはわかりません。

Flash CS3/AS3 で簡単なテストを行ったところ、読み込まれたアイテムがマスク (スクロール ボックスのベース) 内を動き回るようになりました。

最初にマスクレイヤーを作成し、次にマスクの子として新しいレイヤーを作成しました。新しい空のムービークリップをマスク レイヤーの子に追加しました。このムービークリップに「mcItems」という名前を付けました。

次に、次のフレーム スクリプトを添付しました (もちろん、クラスを使用することをお勧めします)。

    for (var i:Number=0; i < 3; ++i)
    {
        var loader:Loader = new Loader();
        loader.load(new URLRequest('Content.swf'));
        mcItems.addChild(loader);
        loader.x = i * 120;
    };
    function update (event:Event)
    {
        mcItems.x = 120*Math.sin(getTimer()/500) - 60;
    };
    addEventListener(Event.ENTER_FRAME, update);

現在、Content.swf は 120x120 ピクセルの灰色のボックスです。私のマスクは 240x120 です。実行すると、3 つの Content.swf ボックスが読み込まれ、マスクされた領域内で期待どおりにスライドします。

スクロールバーのコードに関しては、「数学ハック」の意味がわかりませんが、基本的な原則は、ある単位セットから別の単位セットに変換していることです。「マスク幅 / 読み込まれたアイテムの合計」単位を「スクロール ハンドル幅 / スクロール バー幅」単位に変換しています。

上記で使用されているコードを明確にするために、適切なマニュアル ページを確認することをお勧めします。

よろしく、ヨタム。

于 2009-04-13T22:18:43.167 に答える