0

AS2のTweenLiteで問題が発生しているようです。

メインタイムラインで呼び出すクラスを作成しました。クラス内で画像をロードしました。画像がロードされたら、それらの間でフェードしたいと思います。画像の読み込みが完了したら、(クラス内で)次のコードを呼び出しています。

TweenLite.to(_root["loadedimg1"], 1, {_alpha: 100, 
            onComplete:doImageLoop, onCompleteParams:[1], onCompleteScope:this});

次に、フェードループを実行するための次の関数があります。

public function doImageLoop(imageId:Number):Void 
{
    trace(imageId);
    var newImageId:Number;
    TweenLite.to(_root["loadedimg" + imageId], 1, {delay:2, _alpha: 0});
    if ((imageId + 1) > queueCount) {
        newImageId = 1;
    } else {
        newImageId = imageId + 1;
    }
    TweenLite.to(_root["loadedimg"+newImageId], 1, {delay:3, _alpha: 100, 
              onComplete:doImageLoop, onCompleteParams:[newImageId], 
              onCompleteScope:this, overwrite:0});
    }

この関数はヒットしませんが、この最初の画像はフェードアップします。

4

1 に答える 1

0

あなたのコードは私と完璧に連携しています。私はまだAS2のマイナーな作業を自分で行っているので、あなたに答えようと思いました。loadedimg1、loadedimg2、loadedimg3という3つのpicture-mcをステージに配置しました。次に、「test」というクラスが接続された空のMovieClipを作成しました。このクラスには、次のコードが含まれています。

import gs.TweenLite;

class test extends MovieClip {
private var queueCount : Number = 3;

function test() {
    TweenLite.to(_root["loadedimg1"],1,{_alpha:100, onComplete:doImageLoop, onCompleteParams:[1], onCompleteScope:this});
}

function doImageLoop(imageId:Number):Void {
    trace(imageId);
    var newImageId:Number;
    TweenLite.to(_root["loadedimg"+imageId],1,{delay:2, _alpha:0});
    if ((imageId+1)>queueCount) {
        newImageId = 1;
    } else {
        newImageId = imageId+1;
    }
    TweenLite.to(_root["loadedimg"+newImageId],1,{delay:3, _alpha:100, onComplete:doImageLoop, onCompleteParams:[newImageId], onCompleteScope:this, overwrite:0});
}
};

クラスがどのように配置され、アプリケーションがどの程度深くコーディングされているかについて、より詳細な例を教えてください。AS2では、スコープを失わないようにすることが常に最優先事項でした。:(

私が少し後で助けることができることを願っています...

于 2009-06-30T19:21:15.853 に答える