2009-06-30 3 views
0

TweenLite AS2에서 문제가있는 것 같습니다.tweenlite as2 oncomplete

메인 타임 라인에서 호출하는 클래스를 만들었습니다. 클래스 내에서 이미지를로드하고로드 된 후에는 이미지를 페이드하고 싶습니다.

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

이 함수 명중 결코 극복을하지만 이미지가 로딩이 끝나면 다음 코드 (내 클래스 내부)를 호출하고 이 첫 번째 이미지가 희미 해집니다.

답변

0

당신의 코드는 나에게 완벽하게 작동합니다 .. 나는 여전히 당신에게 대답하려고 노력할 것이라고 생각했기 때문에 약간의 사소한 AS2 재료를 사용하고 있습니다. 나는 3 개의 picture-mc를 불러 들였다 : loadedimg1, loadedimg2 그리고 loadedimg3. 그런 다음 '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의 주요 우선 순위였습니다. :(

희망 조금 나중에 ...