본문 바로가기
  • 오직 예수 그리스도
스위시세상/스위시 고급

[스크랩] -제9강- auto color matrix (리바이벌)

by 어린양01 2012. 2. 21.

 


 

 

 

 

출처 : 영상아트
글쓴이 : 솔.. 원글보기
메모 :

auto color matrix (리바이벌).swf

 

auto color matrix (리바이벌).swi

 

 

@@ AA 에 들어갈 SCRIPT..

onFrame (1) {
    stop();
}
onFrame (2) {
    stop();
}
onFrame (3) {
    stop();
}
onFrame (4) {
    stop();
}

onFrame (5) {
    stop();
}


@@ auto 에 들어갈 script..

onFrame (200) {
  _parent.play();
}


@@ a1~a5 에 들어갈 script..

 

onSelfEvent(load){
 
    var totFrame:Number=200;
    var sharpenDegree:Number=-3;   
   
    var stepFrame:Number =0;
    var totPic:Number=-1;
    var currentPic:Number=0;
    var beforePic:Number;
    var operStat:Number=2;
   
    do{
        stepFrame++;
        aa["img"+stepFrame]==null?totPic=stepFrame:null;
    }while(totPic==-1);
    stepFrame=0;
    sharpenDegree>0?beforePic=totPic-1:beforePic=1;
   
    aa.duplicateMovieClip("aa2",0);
    aa.swapDepths(1);
    imgClear(aa,currentPic,totPic);
    imgClear(aa2,beforePic,totPic);
   
    import flash.filters.ColorMatrixFilter;
    var startMat:Array=[
        1, 0, 0, 0, 0,
        0, 1, 0, 0, 0,
        0, 0, 1, 0, 0,
        sharpenDegree, sharpenDegree, sharpenDegree, (-3)*sharpenDegree, (sharpenDegree<0)*255];
    var endMat:Array=[
        1, 0, 0, 0, 0,
        0, 1, 0, 0, 0,
        0, 0, 1, 0, 0,
        sharpenDegree, sharpenDegree, sharpenDegree, 0, (sharpenDegree>0)*255];
    var betweenMat=new Array;
    
    
    
     aa.onPress=function(){
         if(operStat==0){
             operStat=1;   
         }
     }
    
    
    
     onEnterFrame=function(){
         switch(operStat){
             case 1:
                 currentPic==totPic-1?currentPic=0:currentPic++;
                 if(sharpenDegree>0){
                     beforePic=currentPic==0?totPic-1:currentPic-1;
                 } else{
                     beforePic=currentPic==totPic-1?0:currentPic+1;
                 }
                 imgClear(aa,currentPic,totPic);
                 imgClear(aa2,beforePic,totPic);
            
                 stepFrame=0;
                 operStat=2;                
 
 
            
             case 2:
            
                 stepFrame++;
                 for(var i:Number=0;i<20;i++){
                     betweenMat[i]=startMat[i]+(endMat[i]-startMat[i])*stepFrame/totFrame;
                 }
 
                 var showMat:Object=new ColorMatrixFilter(betweenMat);
                 aa.filters=[showMat];                         
                 stepFrame==totFrame?operStat=0:null;
                 break;
         }
     }
}

function imgClear(imgMc:MovieClip, exceptPic:Number, totalPic:Number){

    for(var i:Number=0;i<totalPic;i++){
        i==exceptPic?imgMc["img"+i]._visible=true:imgMc["img"+i]._visible=false;
    }

}
    

auto color matrix (리바이벌).swi
3.5MB
auto color matrix (리바이벌).swf
0.29MB