Guest User

Untitled

a guest
Jun 29th, 2018
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import mx.transitions.*;
  2. import mx.transitions.easing.*;
  3. import flash.filters.BlurFilter;
  4.  
  5.  
  6. objectName = "object"; // this should reflect what you want your objects named (ie - object1, object2, etc.)
  7. objectMc = "objectMc"; // this should be the linkage identifier for your object movie clip
  8.  
  9. //myXML = "objects.xml"; //path to your XML document
  10. //imageURL = "images/"; //path to image folder
  11.  
  12. scaleFactor = 70; // higher number creates more range of scale
  13. blurFactor = 100; // higher numbers create more range of blur
  14. shiftIndex = 30;  //This number controls the range of movement of the objects, *LOWER* numbers create MORE movement
  15.  
  16. // the two values below control the center point
  17. // for which objects movement is based upon
  18. centerX = Stage.width/2;
  19. centerY = Stage.height/2;
  20.  
  21.  
  22. // you can customize this function to do whatever you wish your objects
  23. // to do when clicked on (after being brought to the front).
  24. function myFunction(){
  25.     myAlert = attachMovie("alertBox","alertBox",1000,{_x:Stage.width/2,_y:Stage.height/2});
  26.     myAlert.onRelease = function(){
  27.         removeMovieClip(this);
  28.     }
  29. }
  30.  
  31.  
  32. function getShiftValue(myDepth:Number):Object {
  33.     var shiftObject:Object = new Object();
  34.     shiftObject.X = ((_xmouse - centerX)/shiftIndex)*(myDepth+1);
  35.     shiftObject.Y = ((_ymouse - centerY)/shiftIndex)*(myDepth+1);
  36.     return shiftObject;
  37.    
  38. }
  39.  
  40.  
  41. var index = 20;
  42. setup(index);
  43. var intervalId = setInterval(removeObjectMc,1000);
  44.  
  45. function setup(total,i)
  46. {
  47. var objectHolder:MovieClip = this.createEmptyMovieClip("objectHolder"+i,100+i);        
  48. object = xml.firstChild.nextSibling.childNodes;
  49.         totalObjects = total;
  50.         trace("Total objects: "+totalObjects);
  51.                
  52.         for(var i=0; i<12; i++){ setup(20, i);}
  53.         {
  54.                 var objectMc:MovieClip = objectHolder.attachMovie(linkageID,objectName+i,i);
  55.                
  56.                 objectMc.image = object[i].attributes.image;
  57.                 objectMc.id = i;
  58.                 objectMc.isClicked = false;
  59.                 objectMc.isFront = (i == totalObjects - 1);
  60.                 objectMc._x = Math.floor(object[i].attributes.x);
  61.                 objectMc._y = Math.floor(object[i].attributes.y);
  62.                 objectMc.xpos = objectMc._x;
  63.                 objectMc.ypos = objectMc._y;
  64.                
  65.                 applyBlur(objectMc,i);
  66.                 applyScale(objectMc,i);
  67.                
  68.                 var imageHolder:MovieClip = objectMc.createEmptyMovieClip("imageHolder",10);
  69.                 var myImgLoader:MovieClipLoader = new MovieClipLoader();
  70.                 var myImgListener:Object = new Object();
  71.                 myImgListener.onLoadInit=function(target_mc)
  72.                 {
  73.                         target_mc._x = (target_mc._parent._width - target_mc._width)/2
  74.                         target_mc._y = (target_mc._parent._height - target_mc._height)/2
  75.                 }
  76.                 myImgLoader.addListener(myImgListener);
  77.                 myImgLoader.loadClip(imageURL+objectMc.image,imageHolder);
  78.         }
  79. }
  80. function removeObjectMc()
  81. {
  82.         objectHolder[objectName+index].removeMovieClip();
  83.         if(index==0)
  84.                 clearInterval(intervalId)
  85.         else
  86.                 index--;
  87. }
  88.  
  89. function depthBlurShift(){ //corrects depth for all profiles
  90.     for(m=0;m<totalObjects;m++){
  91.         myMc = eval("objectHolder."+objectName+m);
  92.         myDepth = myMc.getDepth();
  93.         applyBlur(myMc,myDepth);
  94.         applyScale(myMc,myDepth);
  95.         boundaryCheck(myMc);
  96.     }
  97. }
  98. function getMcAtDepth(targetDepth:Number):MovieClip {
  99.     for(d=0;d<totalObjects;d++){
  100.         theObj = eval("objectHolder."+objectName+d);
  101.         theDepth = theObj.getDepth();
  102.         if(theDepth == targetDepth){
  103.             return theObj;
  104.            
  105.         }
  106.     }
  107. }
  108.  
  109.  
  110.  
  111. function objectShift(){
  112.     for(k=0;k<totalObjects;k++){
  113.         myMc = eval("objectHolder."+objectName+k);
  114.         if(!myMc.isClicked){
  115.             depthVar = myMc.getDepth();
  116.             shiftObj = getShiftValue(depthVar);
  117.             myMc._x = Math.floor(myMc.xpos - shiftObj.X) ;
  118.             myMc._y = Math.floor(myMc.ypos - shiftObj.Y) ;
  119.            
  120.         }
  121.     }
  122.    
  123. }
  124.  
  125. function applyScale(theMc:MovieClip,myDepth:Number){
  126.     //apply scale
  127.     newXscale = 100-(((totalObjects-1)-myDepth)*scaleFactor/10);
  128.     newYscale = 100-(((totalObjects-1)-myDepth)*scaleFactor/10);
  129.     new Tween(theMc,"_xscale",mx.transitions.easing.Elastic.easeOut,theMc._xscale,newXscale,.5,true);
  130.     new Tween(theMc,"_yscale",mx.transitions.easing.Elastic.easeOut,theMc._yscale,newYscale,.5,true);
  131. }
  132.  
  133.  
  134. function applyBlur(theMc:MovieClip,myDepth:Number){  //sets appropriate blur according to depth var
  135.     //apply blur filter
  136.     var blurX:Number = ((totalObjects-1)-myDepth)*(blurFactor/100);
  137.     var blurY:Number = ((totalObjects-1)-myDepth)*(blurFactor/100);
  138.     var quality:Number = 2;
  139.     var filter:BlurFilter = new BlurFilter(blurX, blurY, quality);
  140.     var filterArray:Array = new Array();
  141.     filterArray.push(filter);
  142.     theMc.filters = filterArray;
  143. }
  144.  
  145. function boundaryCheck(theMc:MovieClip){
  146.     // These conditionals keep all profiles reachable on the stage in case they are dragged too far.
  147.     if(theMc.xpos < 0){
  148.         theMc.xpos = 50;
  149.     }
  150.     if(theMc.xpos > Stage.width){
  151.         theMc.xpos = Stage.width - 50;
  152.     }
  153.     if(theMc.ypos < 50){
  154.         theMc.ypos = 100;
  155.     }
  156.     if(theMc.ypos > Stage.height){
  157.         theMc.ypos = Stage.height - 50;
  158.     }
  159. }
  160.  
  161.  
  162. attachMovie("randomBtn","randomBtn",201,{_x:150,_y:25});
  163. function randomize(){
  164.     for(r=0;r<totalObjects;r++){
  165.         myMc = eval("objectHolder."+objectName+r);
  166.         newX = Math.floor((Math.random() * (Stage.width - 50)+100));
  167.         newY = Math.floor((Math.random() * (Stage.height - 50)+100));
  168.         mcDepth = myMc.getDepth();
  169.         myShift = getShiftValue(mcDepth);
  170.         myMc.xpos = newX + myShift.X;
  171.         myMc.ypos = newY + myShift.Y;
  172.         new Tween(myMc,"_x",mx.transitions.easing.Regular.easeOut,myMc._x,newX,.25,true);
  173.         new Tween(myMc,"_y",mx.transitions.easing.Regular.easeOut,myMc._y,newY,.25,true);
  174.     }
  175. }
  176. randomBtn.onRelease = function(){
  177.     randomize();
  178. }
  179.  
  180.  
  181. var mouseListener:Object = new Object();
  182. Mouse.addListener(mouseListener);
  183. mouseListener.onMouseMove = function() {
  184.     objectShift();
  185. };
  186.  
  187. Stage.scaleMode = "noScale";
  188. attachMovie("fullScreenBtn","fullScreenBtn",200,{_x:25,_y:25});
  189. function buttonPosition(){
  190.     fullScreenBtn._x = 10;
  191.     fullScreenBtn._y = 10;
  192.     randomBtn._x = 120;
  193.     randomBtn._y = 10;
  194. }
  195. fullScreenBtn.onRelease = function(){
  196.     if(Stage["displayState"] == "normal"){
  197.         Stage["displayState"] = "fullScreen";
  198.     }else{
  199.         Stage["displayState"] = "normal";
  200.     }
  201. }
  202.  
  203. var stageListener:Object = {};
  204. stageListener.onFullScreen = function(isFullscreen:Boolean){
  205.     if(isFullscreen){
  206.         trace("entered full-screen mode");
  207.     }else{
  208.         trace("exited full-screen mode");
  209.     }
  210.     buttonPosition();
  211. }
  212. Stage.addListener(stageListener);
  213.  
  214.  
  215.  
  216. var xml:XML = new XML();
  217. xml.ignoreWhite = true;
  218. xml.onLoad = function(success:Boolean){
  219.     if(success){
  220.         createObjects();
  221.         trace("XML loaded successfully");
  222.     } else {
  223.         trace("XML error");
  224.     }
  225. }
  226. xml.load(myXML);
Add Comment
Please, Sign In to add comment