문제

AS2에서 트윈 라이트에 문제가있는 것 같습니다.

메인 타임 라인에서 호출하는 수업을 만들었습니다. 클래스 내에서 나는 이미지를로드했고 일단로드되면 그들 사이에서 사라지고 싶습니다. 이미지가로드를 완료했을 때 다음 코드를 호출합니다.

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});
    }

이 기능은 결코 맞지 않지만이 첫 번째 이미지는 사라집니다.

도움이 되었습니까?

해결책

당신의 코드는 나와 함께 완벽하게 작동합니다 .. 나는 여전히 사소한 As2 스스로하고 있으므로 대답하려고 노력했다고 생각했습니다. LoadEdImg1, loadEdImg2 및 loadEdImg3이라는 3 개의 Picture-MC를 무대에 올렸습니다. 그런 다음 '테스트'라는 클래스로 빈 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의 주요 우선 순위였습니다. :(

조금 후에 도울 수 있기를 바랍니다 ...

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top