2011-08-22 5 views
0

아래의 AS2 코드에서 동영상 클립 (mainclip)을 변경하여 플래시 파일의 모든 그래픽 뒤에 있도록하려면 어떻게해야합니까?AS2에서 깊이를 관리하는 방법

코드는 다음과 같습니다 :

import flash.display.BitmapData; 
import flash.geom.Matrix; 
import flash.geom.Rectangle; 
import flash.geom.Point; 
var imageBmp:BitmapData; 


//setting the width of blind parts. 
var widthB:Number = 40; 
//setting the speed of blind parts movement; 
var speedChart = 5; 
//time to wait lo load another image 
var nbSpeedPhoto:Number = 3000; 
//Setting the minimum and maximum alpha for controls container and updating timer 
var nbACMin:Number = 10; 
var nbACMax:Number = 65; 
var nbACUpd:Number = 40; 
//Setting the minimum and maximum alpha for textField Container 
var nbATMin:Number = 0; 
var nbATMax:Number = 100; 
var nbABMin:Number = 0; 
var nbABMax:Number = 65; 
//Setting the color for textField Container and font title 
var nbATBackColor:Number = 0xD0C8CD; 
var nbATFontColor:Number = 0x1F0010; 
//Setting the right margin and top margin for controls 
var nbRightMC:Number = 2; 
var nbTopMC:Number = 2; 
//Setting the bottom margin for title and its height 
var nbBottomMT:Number = 5; 
var nbHeightMT:Number = 50; 
//Init Slider viewer 
var bbPlay:Boolean = true; 
//Setting left to right (1), right to left (2), paralell(3), or random(4) transition 
var nbForm:Number = 4; 
//if you don't choose parallel, setting the time lag. 
var nbLag:Number = 1; 


//initial state of FullScreen and AutoPlaying buttons 
var bbFull:Boolean = false; 
var bbAnimating:Boolean = false; 
var bbEnableTitle:Boolean = false; 
var bbActiveTitle:Boolean = false; 
//setting the first image number to load 
var imageNum:Number = 0; 
var imageLast:Number; 
//initial Photo 
var nbPhoto:Number = 0; 
//timer variables 
var nbTimerNow:Number = 0; 
var nbTimerNext:Number = nbSpeedPhoto; 

/*********Arrays*******************/ 
//used for load XML values 
var arPhotoPath:Array = new Array(); 
var arPhotoTitle:Array = new Array(); 

/**Setting listener to load images**********/ 
var listener:Object = new Object(); 
listener.onLoadComplete = function(imageClip:MovieClip):Void { 
    if (imageNum>0) { 
     imageBmp = new BitmapData(mainClip["image"+imageLast]._width, mainClip["image"+imageLast]._height); 
     imageBmp.draw(mainClip["image"+imageLast],new Matrix()); 
     var sqBmp:BitmapData; 
     var x:Number = 0; 
     var y:Number = 0; 
     if (nbForm == 1 || nbForm == 2 || nbForm == 3) { 
      form = nbForm; 
     } else { 
      rnd=Math.random() 
      if (rnd>0.66) { 
       form = 1; 
      } else if (rnd>0.33){ 
       form = 2; 
      }else{ 
       form = 3; 
      } 
     } 

     for (var j:Number = 0; j<cols; j++) { 
      x = j*widthB; 
      if (j>=cols-1) { 
       var ww = Stage.width-j*widthB; 
      } else { 
       var ww = widthB; 
      } 
      sqBmp = new BitmapData(ww, mcMask._height); 
      sqBmp.copyPixels(imageBmp,new Rectangle(x, y, ww, mcMask._height),new Point(0, 0)); 
      cloneClip.createEmptyMovieClip("clone"+imageLast,cloneClip.getNextHighestDepth()); 
      makeSq(sqBmp,j,form); 
     } 
    } 
    unloadMovie(mainClip["image"+imageLast]); 
    bbAnimating = false; 
    bbEnableTitle = true; 
    nbTimerNext = getTimer()+nbSpeedPhoto; 
    nbOK = 0; 
    mcText.tfToolTip.text = "Photo "+String(nbPhoto+1)+" of "+String(xmlLength)+": "+arPhotoTitle[nbPhoto]; 
    mcText.tfToolTip.setTextFormat(myformat); 
    imageNum++; 
}; 

var imageLoader:MovieClipLoader = new MovieClipLoader(); 
imageLoader.addListener(listener); 

/***Creating Squares*******/ 
function makeSq(sqBmp:BitmapData, jValue:Number, fvalue:Number):Void { 
    var sqClip:MovieClip = cloneClip["clone"+imageLast].createEmptyMovieClip("sq"+jValue, cloneClip["clone"+imageLast].getNextHighestDepth()); 
    sqClip.attachBitmap(sqBmp,1); 
    sqClip._x = jValue*widthB; 

    if (fvalue == 1) { 
     sqClip.lag = jValue; 
    } else if(fvalue == 2) { 
     sqClip.lag = cols-jValue; 
    }else{ 
     sqClip.lag = 0; 
    } 

    sqClip.init = 0; 

    sqClip.onEnterFrame = function() { 
     if (this.init>this.lag) { 
      this._xscale = this._xscale-speedChart; 
     } 
     this.init += nbLag; 
     if (this._yscale<0 || this._xscale<0) { 
      unloadMovie(this); 
     } 
    }; 
} 

//setting the main movieclip and its clone. 
//the clone will store the parts of the main image. 
this.createEmptyMovieClip("mainClip",this.getNextHighestDepth()); 
this.createEmptyMovieClip("cloneClip",this.getNextHighestDepth()); 
this.createEmptyMovieClip("mcMask",this.getNextHighestDepth()); 
this.createEmptyMovieClip("mcMask2",this.getNextHighestDepth()); 
//Creating the text container and setting its properties 
this.createEmptyMovieClip("mcText",this.getNextHighestDepth()); 
mcText.createEmptyMovieClip("mcBackText",this.getNextHighestDepth()); 
makeARectangle(mcText.mcBackText,0,Stage.height-nbBottomMT-nbHeightMT,Stage.width,nbHeightMT,nbATBackColor,100); 
mcText.mcBackText._alpha = 0; 
//Creating the mc text container 
mcText.createTextField("tfToolTip",mcText.getNextHighestDepth(),0,Stage.height-nbBottomMT-nbHeightMT,Stage.width,nbHeightMT); 
mcText.tfToolTip._alpha = 0; 
//Creating the masks 
var bmpMask:BitmapData = new BitmapData(Stage.width, Stage.height, false, 0xCCCCCC); 
mcMask.attachBitmap(bmpMask,this.getNextHighestDepth()); 
mcMask2.attachBitmap(bmpMask,this.getNextHighestDepth()); 

mainClip.createEmptyMovieClip("image"+imageNum,this.getNextHighestDepth()); 

//setting the number of columns and files 
var cols = Math.ceil(mcMask._width/widthB); 

//setting the main and clone masks 
mainClip.setMask(mcMask2); 
cloneClip.setMask(mcMask); 

//setting buttons behaviors 
if (bbPlay) { 
    mcControl.mcPausePlay.gotoAndStop("onPlay"); 
} else { 
    mcControl.mcPausePlay.gotoAndStop("onPause"); 
} 

mcControl.mcBackControls.onRollOver = mcControl.mcFull.onRollOver=mcControl.mcLast.onRollOver=mcControl.mcFirst.onRollOver=mcControl.mcPrevious.onRollOver=mcControl.mcPausePlay.onRollOver=mcControl.mcNext.onRollOver=function() { 
    clearInterval(activeID); 
    activeID = setInterval(activeControl, nbACUpd, true); 
}; 

mcControl.mcBackControls.onRollOut = mcControl.mcFull.onRollOut=mcControl.mcLast.onRollOut=mcControl.mcFirst.onRollOut=mcControl.mcPrevious.onRollOut=mcControl.mcPausePlay.onRollOut=mcControl.mcNext.onRollOut=function() { 
    clearInterval(activeID); 
    activeID = setInterval(activeControl, nbACUpd, false); 
}; 

function activeControl(bb:Boolean) { 
    if (bb) { 
     if (mcControl._alpha>=nbACMax) { 
      clearInterval(activeID); 
     } else { 
      mcControl._alpha += 4; 
     } 
    } else { 
     if (mcControl._alpha<nbACMin) { 
      clearInterval(activeID); 
     } else { 
      mcControl._alpha -= 4; 
     } 
    } 
} 

mcControl.mcFull.onRelease = function() { 
    if (bbFull) { 
     Stage.displayState = "normal"; 
     this.gotoAndStop("onNormal"); 
     bbFull = false; 
    } else { 
     Stage.displayState = "fullScreen"; 
     this.gotoAndStop("onFull"); 
     bbFull = true; 
    } 
}; 

mcControl.mcPausePlay.onRelease = function() { 
    if (bbPlay) { 
     this.gotoAndStop("onPause"); 
     bbPlay = false; 
     clearInterval(initPhoto); 
    } else { 
     if (!bbAnimating) { 
      this.gotoAndStop("onPlay"); 
      bbPlay = true; 
      clearInterval(initPhoto); 
      initPhoto = setInterval(initPlay, 200); 
     } 
    } 
}; 

mcControl.mcLast.onRelease = mcControl.mcFirst.onRelease=mcControl.mcPrevious.onRelease=mcControl.mcNext.onRelease=function() { 
    if (bbAnimating == false) { 
     clearInterval(initPhoto); 
     mcControl.mcPausePlay.gotoAndStop("onPause"); 
     bbPlay = false; 
     mcControl.mcPausePlay.onRelease; 
     switch (this._name) { 
      case "mcFirst" : 
       nbPhoto = 0; 
       break; 
      case "mcPrevious" : 
       nbPhoto = (xmlLength+nbPhoto-1)%xmlLength; 
       break; 
      case "mcNext" : 
       nbPhoto = (nbPhoto+1)%xmlLength; 
       break; 
      case "mcLast" : 
       nbPhoto = xmlLength-1; 
       break; 
      default : 
       break; 
     } 
     imageLast = imageNum-1; 
     mainClip.createEmptyMovieClip("image"+imageNum,mainClip.getNextHighestDepth()); 
     imageLoader.loadClip(arPhotoPath[nbPhoto],mainClip["image"+imageNum]); 
     bbAnimating == true; 
    } 
}; 

/********************************/ 
function makeEnabled(bbEnable:Boolean) { 
    with (mcControl) { 
     mcPausePlay.enabled = bbEnable; 
     mcLast.enabled = bbEnable; 
     mcFirst.enabled = bbEnable; 
     mcPrevious.enabled = bbEnable; 
     mcNext.enabled = bbEnable; 
    } 
} 

function makeVisible(bbVisible:Boolean) { 
    with (mcControl) { 
     mcPausePlay.enabled = bbVisible; 
     mcLast.enabled = bbVisible; 
     mcFirst.enabled = bbVisible; 
     mcPrevious.enabled = bbVisible; 
     mcNext.enabled = bbVisible; 
    } 
} 

function initPlay() { 
    if (bbAnimating == false) { 
     if (bbPlay) { 
      if (getTimer()>=nbTimerNext) { 
       nbPhoto = (nbPhoto+1)%xmlLength; 
       imageLast = imageNum-1; 
       mainClip.createEmptyMovieClip("image"+imageNum,mainClip.getNextHighestDepth()); 
       imageLoader.loadClip(arPhotoPath[nbPhoto],mainClip["image"+imageNum]); 
       bbAnimating = true; 
       nbTimerNext += nbSpeedPhoto; 
      } 
     } 
    } 
} 

var myformat:TextFormat = new TextFormat(); 
myformat.font = "myFont"; 
myformat.color = nbATFontColor; 
myformat.size = 18; 
mcText.tfToolTip.embedFonts = true; 
mcText.tfToolTip.wordWrap = true; 

mcText.onRollOver = function() { 
    if (bbEnableTitle && !bbAnimating) { 
     alphaTitle(nbATMax,nbABMax); 
     bbActiveTitle = true; 
    } 
}; 

mcText.onRollOut = function() { 
    if (bbEnableTitle) { 
     alphaTitle(nbATMin,nbABMin); 
     bbActiveTitle = false; 
    } 
}; 

function alphaTitle(nbTextAlpha:Number, nbBackAlpha) { 
    mcText.mcBackText._alpha = nbBackAlpha; 
    mcText.tfToolTip._alpha = nbTextAlpha; 
    mcText.tfToolTip.setTextFormat(myformat); 
} 

//drawing a square 
function makeARectangle(mc:MovieClip, x:Number, y:Number, w:Number, h:Number, nbColor:Number, nbAlpha:Number) { 
    mc.lineStyle(1,nbColor,0); 
    mc.beginFill(nbColor,nbAlpha); 
    mc.moveTo(x,y); 
    mc.lineTo(x+w,y); 
    mc.lineTo(x+w,y+h); 
    mc.lineTo(x,y+h); 
    mc.lineTo(x,y); 
    mc.endFill(); 
} 

//for loading external XML 
var xmlPhotos:XML = new XML(); 

xmlPhotos.onLoad = function() { 
    xmlLength = this.firstChild.childNodes.length; 
    for (var i:Number = 0; i<xmlLength; i++) { 
     arPhotoPath[i] = (this.firstChild.childNodes[i].attributes.path); 
     arPhotoTitle[i] = (this.firstChild.childNodes[i].childNodes[0].firstChild.nodeValue); 
    } 
    imageLoader.loadClip(arPhotoPath[0],mainClip["image"+imageNum]); 
    bbAnimating = true; 
    initPhoto = setInterval(initPlay, 200); 
}; 

/****Run XML*****************************************/ 
xmlPhotos.ignoreWhite = true; 
xmlPhotos.load("photos.xml"); 

답변

0
mainClip.swapDepths(1); 

이 모든 영화 클립이 타임 라인에서 동일한 레이어에 있는지 확인해야합니다.

관련 문제