forked from: forked from: 3D Carousel

by kururu99 forked from forked from: 3D Carousel (diff: 31)
Flash 10 で被写界深度ネタ Z-sortつき
♥0 | Line 34 | Modified 2013-03-18 23:41:11 | MIT License
play

ActionScript3 source code

/**
 * Copyright kururu99 ( http://wonderfl.net/user/kururu99 )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/1miR
 */

// forked from clockmaker's 3D Carousel

// Flash 10 で被写界深度ネタ Z-sortつき

package{
  import flash.display.*
  import flash.events.*
  import flash.filters.BlurFilter;
  import flash.geom.*;

  [SWF(frameRate="90", width="465", height="465")]

  public class Main extends Sprite {
  public function Main() {

      var main :Sprite = Sprite(addChild(new Sprite()))
      main.x = stage.stageWidth / 2
      main.y = stage.stageHeight / 2
      var wrap :Sprite = Sprite(main.addChild(new Sprite()))
      var pp:PerspectiveProjection = root.transform.perspectiveProjection; 
      
      var objs:Array = []
      for(var i:int=0; i<4; i++)

      {
        var sp: Sprite = Sprite(wrap.addChild(new Sprite()))
        sp.graphics.beginFill(0xFFFFFF * Math.random())
        sp.graphics.drawRect(-250, -250, 500, 500)
        sp.x = 50 * Math.sin( i * 360 / 4 * Math.PI / 180)
        sp.y = 0 * Math.sin( i * 360 / 4 * Math.PI / 180)*(-1)
        sp.z = 50 * Math.cos( i * 360 / 4 * Math.PI / 180)*(-1)

        objs.push(sp)
          ele = arr[i].ele as Sprite
          var z:Number = arr[i].z
          wrap.setChildIndex(ele, i)
          var b:Number = Math.abs(z)
          // focus depth blur effect, warning, very slow:
          b = z/10
          ele.filters = (b > 2) ? [new BlurFilter(b, b, 3)] : []
        }
      })
    }
  }
}