※現在、「wonderfl build flash online」求人コンテンツ制作に関してのアンケートを実施中です!みなさまのお力添えを頂いて、続々とアンケート結果が集まっていますが、まだまだ募集しております。ご協力のほど、どうぞよろしくお願いいたします!

wonderfl運営事務局
→アンケートページ(※ログインしてからお答えいただけるようになっています。)

 notice: Flash editor updated! Join the development! Thanks to MiniBuilder


FORKED

PV3D | 3面回転スクリーン(鏡面付き) forked from: PV3D | 3面回転スクリーン(鏡面付き) [diff(1)]

  1. // forked from Nyarineko's PV3D | 3面回転スクリーン(鏡面付き)
  2. //PV3D | 3面回転スクリーン鏡面付き
  3. //MCの中何入れよう
  4. package {
  5.     import flash.display.Sprite;
  6.     import flash.display.MovieClip;
  7.     import flash.text.TextField;
  8.     import flash.text.TextFormat;
  9.     import flash.display.Bitmap;
  10.     import flash.display.BitmapData;
  11.     import flash.display.BlendMode;
  12.     import flash.filters.BlurFilter;
  13.     import flash.events.Event;
  14.     import flash.events.MouseEvent;
  15.     import org.papervision3d.view.*;
  16.     import org.papervision3d.objects.primitives.*;
  17.     import org.papervision3d.materials.*;
  18.     import org.papervision3d.materials.utils.MaterialsList;
  19.     import org.papervision3d.core.effects.view.ReflectionView;
  20.     import org.papervision3d.objects.*;
  21.     import caurina.transitions.*;
  22.     import flash.geom.ColorTransform;
  23.     import flash.geom.Rectangle;
  24.     import flash.geom.Point;
  25.  
  26.     [SWF(width = "465", height = "465", backgroundColor = "0", fps = "30")]
  27.     
  28.     public class Main extends ReflectionView {
  29.         private var plane:Plane;
  30.         private var animateFlg:Boolean = true;
  31.         private var rootNode  : DisplayObject3D;
  32.  
  33.         private const N:uint = 1300;
  34.         private const W:uint = 300;
  35.         private const H:uint = 300;
  36.         private const W1_2:uint = uint(W / 2);
  37.         private const H1_2:uint = uint(H / 2);
  38.         private const RECT:Rectangle = new Rectangle(00, W, H);
  39.         private const ZEROS:Point = new Point(00);
  40.         private var _head:Particle;
  41.         private var _canvas:BitmapData;
  42.         private var _buffer:BitmapData;
  43.         private var _blurFilter:BlurFilter;
  44.         private var _colorTransForm:ColorTransform;
  45.         
  46.         public function Main() {
  47.             surfaceHeight = -300;
  48.             viewportReflection.filters = [new BlurFilter(221)];
  49.             setReflectionColor(0.50.50.7);
  50.             rootNode = scene.addChild( new DisplayObject3D( "rootNode" ) );
  51.             camera.x = 0;
  52.             camera.y = 100;
  53.             camera.z = -450;
  54.             addEventListener(Event.ENTER_FRAME,handler);
  55.             
  56.             var mc1:MovieClip =  new MovieClip();
  57.             var mct:TextField = new TextField();
  58.             var fmt:TextFormat = new TextFormat();
  59.             fmt.size = 20;
  60.             fmt.font = "A-OTF 新ゴ Pro M";
  61.             mct.defaultTextFormat = fmt;
  62.             mct.text = "please click here!";
  63.             mct.textColor =0xffffff;
  64.             mct.x = 50;
  65.             mct.width=200;
  66.             mct.y = 140;
  67.             var bmp1:Bitmap = new Bitmap(new BitmapData(300300false, 0x0000AA));
  68.             mc1.addChild(bmp1);
  69.             mc1.addChild(mct);
  70.             var mc2:MovieClip =  new MovieClip();
  71.             mc2.addChild(new Bitmap(_canvas = new BitmapData(W, H, false, 0x000066)));
  72.             _buffer = _canvas.clone();
  73.             _blurFilter = new BlurFilter(16161);
  74.             _colorTransForm = new ColorTransform(0.950.950.95);
  75.             var p:Particle = _head = new Particle();
  76.             for (var j:uint = 0; j < N; ++j){
  77.                 p = p.next = new Particle();
  78.             }
  79.             addEventListener(Event.ENTER_FRAME, _update); 
  80.             addEventListener(MouseEvent.CLICK, _reset);
  81.             _reset();
  82.             
  83.             var mc3:MovieClip =  new MovieClip();
  84.             var bmp3:Bitmap = new Bitmap(new BitmapData(300300false, 0x6600AA));
  85.             mc3.addChild(bmp3);
  86.             
  87.             var material1:MovieMaterial = new MovieMaterial(mc1,true,true );
  88.             var material2:MovieMaterial = new MovieMaterial(mc2,true,true );
  89.             var material3:MovieMaterial = new MovieMaterial(mc3,true,true );
  90.             
  91.             var myPlane1:Plane = new Plane(material1,300,300,12,12);
  92.             var myPlane2:Plane = new Plane(material2,300,300,12,12);
  93.             var myPlane3:Plane = new Plane(material3,300,300,12,12);
  94.             for each(var i:* in myPlane1.geometry.vertices){
  95.               i.z-=86;
  96.             }
  97.             for each(i in myPlane2.geometry.vertices){
  98.               i.z-=86;
  99.             }
  100.             for each(i in myPlane3.geometry.vertices){
  101.               i.z-=86;
  102.             }
  103.             myPlane2.rotationY+=120;
  104.             myPlane3.rotationY+=240;
  105.             rootNode.addChild( myPlane1 );
  106.             rootNode.addChild( myPlane2 );
  107.             rootNode.addChild( myPlane3 );
  108.             rootNode.rotationY+=20;
  109.             rootNode.x+=50;
  110.  
  111.             addEventListener(MouseEvent.MOUSE_DOWN,evMouseDown);
  112.             animateFlg = false;
  113.             Tweener.addTween(rootNode,{rotationY:rootNode.rotationY+360,time:3,
  114.                 transition:"easeInOutBack",onComplete:setAnimateFlag});
  115.          
  116.  
  117.         }
  118.         public function handler(event:Event):void
  119.         {
  120.             singleRender();
  121.         }
  122.         public function evMouseDown(event:MouseEvent):void{
  123.             if(animateFlg){
  124.                 animateFlg = false;
  125.                 Tweener.addTween(rootNode,{rotationY:rootNode.rotationY+120,time:2,
  126.                 transition:"easeOutElastic",onComplete:setAnimateFlag});
  127.             }
  128.         }
  129.         public function setAnimateFlag():void
  130.         {
  131.              animateFlg = true;
  132.         }
  133.         private function _reset(e:MouseEvent = null):void{
  134.             var p:Particle = _head;
  135.             var c:Number = 1;
  136.             do {
  137.                 p.x = c;
  138.                 p.y = c;
  139.                 p.s = c % 100 * 0.1;
  140.                 p.radius = c % 2000 / 9;
  141.                 p.angle = 0;
  142.                 c ++;
  143.             } while (p = p.next);
  144.         }
  145.         private function _update(e:Event):void{
  146.             var p:Particle = _head;
  147.             _buffer.lock();
  148.             _buffer.fillRect(RECT, 0x000000);
  149.             do {
  150.                 p.angle = p.angle + p.s;
  151.                 var radian:Number = p.angle * Math.PI / 180;
  152.                 p.x = W1_2 + p.radius * Math.cos(radian);
  153.                 p.y = H1_2 + p.radius * Math.sin(radian);
  154.                 _buffer.setPixel(p.x,p.y, 0x00AAFF);
  155.             } while (p = p.next);
  156.             _buffer.unlock();
  157.             _canvas.lock();
  158.             _canvas.colorTransform(RECT, _colorTransForm);
  159.             _canvas.applyFilter(_canvas, RECT, ZEROS, _blurFilter);
  160.             _canvas.draw(_buffer, nullnull, BlendMode.ADD);
  161.             _canvas.unlock();
  162.         }
  163.     }
  164. }
  165. internal class Particle {
  166.     public var radius:Number;
  167.     public var angle:Number;
  168.     public var x:Number;
  169.     public var y:Number;
  170.     public var s:Number;
  171.     public var next:Particle;
  172. }
noswf
Get Adobe Flash Player