Saqoosha

どうもどうもこんばんわ Saqoosha です。
みなさん、今回の CHECKMATE どうでした? 難しかった?
いやー、出題する方もなかなか大変でござるよー。
ある程度テーマを絞りつつ、でも自由度はないといけないっていうね。
そういう意味では「虹」も「オノマトペ」もいい感じにみんな違った方向の作品がでてきたのでおもしろかったですな。
んー、みんなすごいなー、おもしろいなー。負けてられないのでちょっとみんなのソースコード研究してくる! んじゃっ!

Good Evening. This is Saqoosha.
How's the CHECKMATE this time? Difficult?
I also had a tough time while making these questions.
Although, there are two diffrent classes, it must allow each person's style.
In this sense, I had fun looking at them, since both themes ended up with various challenge and creation.
Everyone is wonderful! Interesting! Well, now I feel like to challenge myself, so I will start reserching on everyone's source codes. Bye now!

Amateur

Queenalumican_net

  1. /**
  2.  * Stardust Rainbow
  3.  * 長い時間見続けると酔うという、いわくつきのFlash
  4.  * 
  5.  * forked from checkmate's Saqoosha challenge for amateurs
  6.  */
  7. package 
  8. {
  9.     import flash.display.Bitmap;
  10.     import flash.display.BitmapData;
  11.     import flash.display.BlendMode;
  12.     import flash.display.Sprite;
  13.     import flash.display.StageQuality;
  14.     import flash.display.StageScaleMode;
  15.     import flash.events.Event;
  16.     import flash.filters.BlurFilter;
  17.     import flash.geom.Point;
  18.     import flash.geom.Rectangle;
  19.     import org.libspark.betweenas3.easing.Quint;
  20.     
  21.     [SWF(width = 465, height = 465, backgroundColor = 0x0, frameRate = 30)]
  22.     public class StardustRainbow extends Sprite
  23.     {
  24.         //-------------------------------------
  25.         //CLASS CONSTANTS
  26.         
  27.         private const W:uint = 465;
  28.         private const H:uint = 465;
  29.         
  30.         private const SPRING:Number   = 0.96;
  31.         private const FRICTION:Number = 0.15;
  32.         
  33.         private const PI:Number    = Math.PI;
  34.         private const PI2:Number   = PI * 2;
  35.         private const PI1_2:Number = PI * 0.5;
  36.         
  37.         private const ZEROS:Point    = new Point(00);
  38.         private const RECT:Rectangle = new Rectangle(00, W, H);
  39.         
  40.         
  41.         
  42.         
  43.         
  44.         //-------------------------------------
  45.         //VARIABLES
  46.         
  47.         private var _gradation:Gradation;
  48.         private var _container:Sprite;
  49.         private var _particles:Array;
  50.         
  51.         private var _blurFilter:BlurFilter;
  52.         
  53.         private var _canvasFront:BitmapData;
  54.         private var _canvasBlur:BitmapData;
  55.         
  56.         private var _px:Number;
  57.         private var _py:Number;
  58.         
  59.         private var _ox:Number;
  60.         private var _oy:Number;
  61.         
  62.         private var _vx:Number;
  63.         private var _vy:Number;
  64.         
  65.         static public var starShapeX:Array;
  66.         static public var starShapeY:Array;
  67.         
  68.         
  69.         
  70.         
  71.         
  72.         //-------------------------------------
  73.         //METHODS
  74.         
  75.         public function StardustRainbow():void 
  76.         {
  77.             Wonderfl.disable_capture();
  78.             addEventListener(Event.ADDED_TO_STAGE, _initialize);
  79.         }
  80.         
  81.         /**
  82.          * EntryPoint
  83.          */
  84.         private function _initialize(e:Event):void 
  85.         {
  86.             removeEventListener(Event.ADDED_TO_STAGE, _initialize);
  87.             
  88.             stage.scaleMode = StageScaleMode.NO_SCALE;
  89.             stage.quality   = StageQuality.LOW;
  90.             
  91.             //虹色グラデーション
  92.             _gradation = new Gradation(0xff0000, 0xff8000, 0xffff00, 0x00ff00, 0x00ffff, 0x0000ff, 0x8000ff);
  93.             _gradation.setEasing(Quint.easeInOut);
  94.             
  95.             _container = new Sprite();
  96.             _particles = new Array();
  97.             
  98.             addChild(new Bitmap( _canvasFront = new BitmapData(W, H, true, 0x0) ) ) as Bitmap;
  99.             _canvasBlur = _canvasFront.clone();
  100.             
  101.             _blurFilter = new BlurFilter(48481);
  102.             
  103.             _ox = _px = mouseX;
  104.             _oy = _py = mouseY;
  105.             _vx = _vy = 0;
  106.             
  107.             starShapeX = new Array(10);
  108.             starShapeY = new Array(10);
  109.             for (var i:uint = 0; i < 10; ++i) 
  110.             {
  111.                 var angle:Number = (i / 10) * Math.PI * 2;
  112.                 var s:Number = (i % 2 == 0) ? 10 : 10 * 0.5;
  113.                 starShapeX[i] = s * Math.cos(angle);
  114.                 starShapeY[i] = s * Math.sin(angle);
  115.             }
  116.             
  117.             addEventListener(Event.ENTER_FRAME, _update);
  118.         }
  119.         
  120.         /**
  121.          * Updator
  122.          */
  123.         private function _update(e:Event):void 
  124.         {
  125.             var dx:Number = mouseX - _px,
  126.                 dy:Number = mouseY - _py,
  127.                 ax:Number = dx * SPRING,
  128.                 ay:Number = dy * SPRING,
  129.                 p:Star,
  130.                 a:Number,
  131.                 i:int,
  132.                 n:int = _particles.length,
  133.                 angle:Number = Math.atan2(_vy, _vx);
  134.             
  135.             _vx += ax;
  136.             _vy += ay;
  137.             _px += _vx;
  138.             _py += _vy;
  139.             
  140.             for (i = n - 1; i >= 0; --i) 
  141.             {
  142.                 p     = _particles[i];
  143.                 p.v += p.a;
  144.                 p.x += p.v * Math.cos(p.angle);
  145.                 p.y += p.v * Math.sin(p.angle);
  146.                 
  147.                 p.rotation += p.rot;
  148.                 p.scaleX = p.scaleY += p.v * 0.01;
  149.                 
  150.                 //画面外のは削除
  151.                 if (p.x < 0 || p.x > W || p.y < 0 || p.y > H)
  152.                 {
  153.                     _container.removeChild( _particles.splice(i, 1)[0] );
  154.                 }
  155.             }
  156.             
  157.             n = 20;
  158.             for (i = 0; i < n; ++i) 
  159.             {
  160.                 p    = new Star();
  161.                 p.x  = mouseX;
  162.                 p.y  = mouseY;
  163.                 p.a  = 1.0 + (Math.random() - 0.5) * 0.2;
  164.                 p.v = 0;
  165.                 p.rot = (Math.random() - 0.5) * 10;
  166.                 p.rotation = Math.random() * PI2;
  167.                 p.angle = angle * 2 + (i - n / 2) * 0.2 + PI1_2;
  168.                 p.createShape(_gradation.getColor(i / n));
  169.                 p.blendMode = BlendMode.ADD;
  170.                 _container.addChildAt(p, 0);
  171.                 _particles.push(p);
  172.             }
  173.             
  174.             _vx *= FRICTION;
  175.             _vy *= FRICTION;
  176.             
  177.             _ox  = _px;
  178.             _oy  = _py;
  179.             
  180.             //drawing
  181.             _canvasFront.lock();
  182.             _canvasBlur.lock();
  183.             
  184.             _canvasFront.fillRect(RECT, 0x0);
  185.             _canvasFront.draw(_container);
  186.             
  187.             _canvasBlur.copyPixels(_canvasFront, RECT, ZEROS);
  188.             _canvasBlur.applyFilter(_canvasBlur, RECT, ZEROS, _blurFilter);
  189.             
  190.             _canvasFront.draw(_canvasBlur);
  191.             
  192.             _canvasFront.unlock();
  193.             _canvasBlur.unlock();
  194.         }
  195.     }
  196. }
  197. import flash.display.Graphics;
  198. import flash.display.Shape;
  199. import flash.display.Sprite;
  200. class Star extends Sprite
  201. {
  202.     public var a:Number;
  203.     public var v:Number;
  204.     public var angle:Number;
  205.     public var rot:Number;
  206.     
  207.     public function Star():void
  208.     {
  209.     }
  210.     
  211.     public function createShape(color:uint):void
  212.     {
  213.         var i:uint;
  214.         var g:Graphics = graphics;
  215.         
  216.         g.beginFill(color, 1);
  217.         g.moveTo(StardustRainbow.starShapeX[0], StardustRainbow.starShapeY[0]);
  218.         for (i = 0; i < 10; ++i) g.lineTo(StardustRainbow.starShapeX[i], StardustRainbow.starShapeY[i]);
  219.         g.moveTo(StardustRainbow.starShapeX[0] * 0.5, StardustRainbow.starShapeY[0] * 0.5);
  220.         for (i = 0; i < 10; ++i) g.lineTo(StardustRainbow.starShapeX[i] * 0.5, StardustRainbow.starShapeY[i] * 0.5);
  221.         g.endFill();
  222.     }
  223. }
  224. /**
  225.  * @author saqoosha
  226.  * @see http://wonderfl.net/code/7ed2d650b9d513edf9a499fb704c19ecb7aa4694
  227.  */
  228. import frocessing.color.ColorLerp;
  229. import org.libspark.betweenas3.core.easing.IEasing;
  230. import org.libspark.betweenas3.easing.Linear;
  231. class Gradation
  232. {
  233.     private var _colors:Array;
  234.     private var _easing:IEasing;
  235.     
  236.     public function Gradation(...args):void
  237.     {
  238.         _colors = args.concat();
  239.         _easing = Linear.linear;
  240.     }
  241.     
  242.     public function setEasing(easing:IEasing):void
  243.     {
  244.         _easing = easing;
  245.     }
  246.     
  247.     public function getColor(position:Number):uint
  248.     {
  249.         position = (position < 0 ? 0 : position > 1 ? 1 : position) * (_colors.length - 1);
  250.         var idx:int = position;
  251.         var alpha:Number = _easing.calculate(position - idx, 011);
  252.         if (alpha == 0)
  253.         {
  254.             return _colors[idx];
  255.         }
  256.         else
  257.         {
  258.             return ColorLerp.lerp(_colors[idx], _colors[idx + 1], alpha);
  259.         }
  260.     }
  261. }
flash swf thumbnail play
出題者からのコメント
うひょー、超派手、キレー!好きー!
Comments from King
Wow! It's so flashy and beautiful! I love it!

Bishopk3lab

  1. // forked from checkmate's Saqoosha challenge for amateurs
  2. package {
  3.     import flash.display.*;
  4.     import flash.events.*;
  5.     import flash.filters.*;
  6.     import flash.geom.*;
  7.     import flash.media.Sound;
  8.     import flash.net.URLRequest;
  9.     import flash.utils.getTimer;
  10.     import com.bit101.components.Label;
  11.     /**
  12.      * 
  13.      * @author k3lab
  14.      */
  15.     [SWF(width="465", height="465", frameRate="60")] 
  16.     public class Main extends Sprite {
  17.         private static const PARTICLE_NUM:int = 500;
  18.         private static const SPRING:Number = 0.18;
  19.         private static const FRICTION:Number = 0.75;
  20.         
  21.         private var canvas:BitmapData; 
  22.         private var clones:BitmapData;
  23.         
  24.         private var pArr:Array = [];
  25.         private var volArr:Array = []
  26.         private var colorArr:Array = []
  27.         
  28.         private var clt:ColorTransform = new ColorTransform(11110, -10, -10, -10);
  29.         private var sp:Sprite;
  30.         private var trail:Sprite;
  31.         
  32.         private var vx:Number = 0;
  33.         private var vy:Number = 0;
  34.         private var ratio:Number = 0;
  35.         
  36.         private var grad:Gradation;
  37.         
  38.         public function Main():void {
  39.             if (stage) init();
  40.             else addEventListener(Event.ADDED_TO_STAGE, init);
  41.         }
  42.         private function init(e:Event = null):void {
  43.             removeEventListener(Event.ADDED_TO_STAGE, init);
  44.             //BGM
  45.             var sound:Sound = new Sound (new URLRequest ("http://www.k3lab.com/wonderfl/Euphoria/bgm.mp3"));  
  46.             sound.play (0int.MAX_VALUE); 
  47.             
  48.             canvas = new BitmapData(465465false, 0x00000000);    
  49.             clones = canvas.clone(); 
  50.             addChild(new Bitmap(clones)) as Bitmap; 
  51.             grad = new Gradation(0xff0000, 0x00ff00, 0x0000ff);
  52.             var a:Number = 0;
  53.             sp = addChild(new Sprite()) as Sprite;
  54.             sp.blendMode = "screen";
  55.             for (var i:int = 0; i < PARTICLE_NUM; i++) {
  56.                 a += 0.2
  57.                 var p:Particle =sp.addChild(new Particle()) as Particle;
  58.                 p._x = 240 * Math.sin(a);
  59.                 p._y  = 240 * Math.cos(a);
  60.                 p._z = 0;
  61.                 pArr[i] = p
  62.                 p.draw(grad.getColor(i / PARTICLE_NUM), 0.6,  Math.random() * 0.6);
  63.             }
  64.             //******************************************
  65.             //付属品
  66.             mouseTrail();
  67.             createBg();
  68.             createHeader();
  69.             createBar();
  70.             createVolume();
  71.             //******************************************
  72.             addEventListener(Event.ENTER_FRAME, loop);
  73.         }
  74.         //************************************************************
  75.         //マウストレイル
  76.         private function mouseTrail():void {
  77.             trail = addChild(new Sprite()) as Sprite;
  78.             trail.graphics.beginFill(0xFFFFFF);
  79.             trail.graphics.drawRect( -100201);
  80.             trail.graphics.drawRect(0 , -10120);
  81.             trail.graphics.endFill();
  82.             var circles:Sprite=trail.addChild(new Sprite()) as Sprite;
  83.             circles.graphics.beginFill(0xFFFFFF);
  84.             circles.graphics.drawRect( -465010301);
  85.             circles.graphics.drawRect( 0, -46511030);
  86.             circles.graphics.endFill();
  87.             circles.alpha = 0.2;    
  88.         }
  89.         //全体のBG
  90.         private function createBg():void {
  91.             var pattern:BitmapData = background()
  92.             var bg:Sprite = addChild(new Sprite()) as Sprite;
  93.             bg.graphics.beginBitmapFill(pattern);
  94.             bg.graphics.drawRect(00465465)
  95.             bg.graphics.endFill();
  96.             bg.alpha = 0.3;
  97.         }
  98.         //上のTitle&BG
  99.         private function createHeader():void {
  100.             var tbg:Sprite = addChild(new Sprite()) as Sprite;
  101.             tbg.graphics.beginFill(0);
  102.             tbg.graphics.drawRect( 0046518);
  103.             tbg.graphics.endFill();
  104.             var title:Label = new Label(this1470"Barrage of Rainbow Exploration ver.0.1"); 
  105.             title.blendMode = "invert"
  106.         }
  107.         //左上のColor Bar
  108.         private function createBar():void {
  109.             var cl:Array = [0xff0000, 0x00ff00, 0x0000ff]
  110.             var clsp:Sprite = addChild(new Sprite()) as Sprite;
  111.             for (var i:int = 0; i < 3; i++) {
  112.                 var colors:Sprite = clsp.addChild(new Sprite()) as Sprite;
  113.                 colors.graphics.beginFill(cl[i]);
  114.                 colors.graphics.drawRect( 0010,10);
  115.                 colors.graphics.endFill();
  116.                 colors.x = 11 * i;
  117.             }
  118.             clsp.x = 4;
  119.             clsp.y = 4;
  120.         }
  121.         //右上のvoloume
  122.         private function createVolume():void {
  123.             var volsp:Sprite = addChild(new Sprite()) as Sprite;
  124.             for (var i:int = 0; i < 7; i++) {
  125.                 var vol:Sprite = volsp.addChild(new Sprite()) as Sprite;
  126.                 vol.graphics.beginFill(0xFFFFFF);
  127.                 vol.graphics.drawRect( 001, -10);
  128.                 vol.graphics.endFill();
  129.                 vol.x=2*i
  130.                 volArr[i] = vol;
  131.             }
  132.             volsp.x = stage.stageWidth - volsp.width - 5;
  133.             volsp.y = 15;
  134.         }
  135.         private function voloop():void {
  136.             for each(var v:Sprite in volArr) {
  137.                 v.height = Math.sin(getTimer() / 500 * Math.random() * 5) * 10;
  138.             }    
  139.         }
  140.         private function trailoop():void {
  141.             vx += (mouseX - trail.x) * SPRING;
  142.             vy += (mouseY - trail.y) * SPRING;
  143.             vx *= FRICTION;
  144.             vy *= FRICTION;
  145.             trail.x += int(vx);
  146.             trail.y += int(vy);
  147.         }
  148.         //************************************************************
  149.         private function loop(e:Event):void {
  150.             voloop();
  151.             trailoop();
  152.             var zp:Number = 0;
  153.             var i:int;
  154.             for each(var p:Particle in pArr) {
  155.                 var xa:Number = Math.sin(Math.PI * (getTimer()+i*100) % 30000 / 30000 * 360 / 180) / 20;
  156.                 var ya:Number = Math.sin(Math.PI * (getTimer()+i*100) % 1500 / 1500 * 360 / 180) / 20;
  157.                 var yp:Number = p._y * Math.cos(ya) -p._z * Math.sin(ya);
  158.                 zp =p._y * Math.sin(ya) + p._z * Math.cos(ya);
  159.                 var xp:Number = p._x * Math.cos(xa) + zp * Math.sin(xa);
  160.                 zp = ( -p._x) * Math.sin(xa) + zp * Math.cos(xa);
  161.                 p._x = xp;
  162.                 p._y = yp;
  163.                 p._z = zp;
  164.                 p.alpha = Math.random() * 1;
  165.                 (p._z < -95)?p.visible = false:p.visible = true;
  166.                 ratio = 1 / (p._z /100 + 1)
  167.                 var num:Number = 0;
  168.                 p.scaleY = num = ratio * 7;
  169.                 p.scaleX = num;
  170.                 p.x += (p._x * ratio + (mouseX) - p.x) / 10;
  171.                 p.y += (p._y * ratio +( mouseY) - p.y) / 10;
  172.                 canvas.setPixel(p.x, p.y, grad.getColor(i /PARTICLE_NUM)); 
  173.                 i++;
  174.             }
  175.             clones.lock(); 
  176.             canvas.lock();
  177.             canvas.draw(sp)
  178.             clones.merge(canvas, canvas.rect, new Point(),zp/10,zp/100, zp*10,0.5);
  179.             clones.draw(canvas, nullnew ColorTransform(100 * zp, 1010), "add");
  180.             canvas.applyFilter(canvas, canvas.rect, new Point(00), new BlurFilter(20201)); 
  181.             clones.scroll(01);
  182.             clones.colorTransform(clones.rect, clt); 
  183.             canvas.colorTransform(canvas.rect, clt);
  184.             clones.unlock(); 
  185.             canvas.unlock();            
  186.         }
  187.         public function background():BitmapData{ 
  188.             return BitmapPatternBuilder.build( 
  189.                 [[100], 
  190.                 [010],
  191.                 [001]],
  192.                 [0xFF000000, 0xffffffff] 
  193.             ); 
  194.         } 
  195.     }
  196. }
  197. import flash.display.Graphics;
  198. import flash.display.Sprite;
  199. class Particle extends Sprite {
  200.     public var _x:Number=0;
  201.     public var _y:Number=0;
  202.     public var _z:Number=0;
  203.     public function draw(color:int, alpha:Number, size:Number):void {
  204.         graphics.beginFill(color, alpha);
  205.         graphics.drawCircle(00, size);
  206.         graphics.endFill();
  207.     }
  208. }
  209. import frocessing.color.ColorLerp;
  210. import org.libspark.betweenas3.core.easing.IEasing;
  211. import org.libspark.betweenas3.easing.Linear;
  212. class Gradation {
  213.     
  214.     private var _colors:Array;
  215.     private var _easing:IEasing;
  216.     
  217.     public function Gradation(...args) {
  218.         _colors = args.concat();
  219.         _easing = Linear.linear
  220.     }
  221.     
  222.     public function setEasing(easing:IEasing):void {
  223.         _easing = easing;
  224.     }
  225.     
  226.     public function getColor(position:Number):uint {
  227.         position = (position < 0 ? 0 : position > 1 ? 1 : position) * (_colors.length - 1);
  228.         var idx:int = position;
  229.         var alpha:Number = _easing.calculate(position - idx, 011);
  230.         if (alpha == 0) {
  231.             return _colors[idx];
  232.         } else {
  233.             return ColorLerp.lerp(_colors[idx], _colors[idx + 1], alpha);
  234.         }
  235.     }
  236. }
  237. /**-----------------------------------------------------
  238.  * @see http://wonderfl.net/code/5f88476bd21cac4d45ad2086af2333782a5d3cb8
  239.  * ----------------------------------------------------- 
  240. */ 
  241. import flash.display.Bitmap; 
  242. import flash.display.BitmapData; 
  243. import flash.display.Graphics; 
  244.      
  245. class BitmapPatternBuilder{ 
  246.     /** 
  247.      * creates BitmapData filled with dot pattern. 
  248.      * First parameter is 2d array that contains color index for each pixels; 
  249.      * Second parameter contains color reference table. 
  250.      * 
  251.      * @parameter pattern:Array 2d array that contains color index for each pixel. 
  252.      * @parameter colors:Array 1d array that contains color table. 
  253.      * @returns BitmapData 
  254.      */ 
  255.     public static function build(pattern:Array, colors:Array):BitmapData{ 
  256.         var bitmapW:int = pattern[0].length; 
  257.         var bitmapH:int = pattern.length; 
  258.         var bmd:BitmapData = new BitmapData(bitmapW,bitmapH,true,0x000000); 
  259.         for(var yy:int=0; yy<bitmapH; yy++){ 
  260.             for(var xx:int=0; xx<bitmapW; xx++){ 
  261.                 var color:int = colors[pattern[yy][xx]]; 
  262.                 bmd.setPixel32(xx, yy, color); 
  263.             } 
  264.         } 
  265.         return bmd; 
  266.     } 
  267.      
  268.     /** 
  269.      * short cut function for Graphics.beginBitmapFill with pattern. 
  270.      */ 
  271.     public static function beginBitmapFill(pattern:Array, colors:Array, graphics:Graphics):void
  272.         var bmd:BitmapData = build(pattern, colors); 
  273.         graphics.beginBitmapFill(bmd); 
  274.         bmd.dispose();         
  275.     } 
flash swf thumbnail play
出題者からのコメント
なにがなんだかよくわかんないけどカコイイ!
Comments from King
I'm not really get it but it's so cool!

Knightsekiryou

  1. //forked from: Saqoosha challenge for amateurs
  2. package {
  3.     import flash.display.Sprite;
  4.     import flash.events.Event;
  5.     import flash.display.Bitmap;
  6.     import flash.display.BitmapData;
  7.     import flash.geom.Point;
  8.     import flash.geom.Matrix;
  9.     import flash.geom.ColorTransform;
  10.     import flash.geom.Rectangle;
  11.     import flash.filters.BlurFilter;
  12.     import org.libspark.betweenas3.easing.Circ;
  13.     [SWF(width=465, height=465, backgroundColor=0x000000, frameRate=30)]
  14.     public class IridescentLocus extends Sprite {
  15.         private const STAGE_WIDTH = stage.stageWidth;
  16.         private const STAGE_HEIGHT = stage.stageHeight;
  17.         private const STAGE_CENTER_X = stage.stageWidth / 2;
  18.         private const STAGE_CENTER_Y = stage.stageHeight / 2;
  19.         private var SatelliteAmount:uint = 20;
  20.         private var satellites:Array = [];
  21.         private var FocalLength:Number = 124;
  22.         private var grad:Gradation;
  23.         private var rAcrc:uint = 12;
  24.         private var _canvas:BitmapData;
  25.         private var bmp:Bitmap;
  26.         private var _particles:Array;
  27.         private var _rect:Rectangle;
  28.         private var cTra:ColorTransform;
  29.         public function IridescentLocus() {
  30.             init();
  31.         }
  32.         private function init():void {
  33.             _canvas = new BitmapData (STAGE_WIDTH, STAGE_HEIGHT, true, 0xFFFFFF);
  34.             bmp = new Bitmap (_canvas);
  35.             addChild (bmp);
  36.             _rect = new Rectangle(00, STAGE_WIDTH, STAGE_HEIGHT);
  37.             cTra = new ColorTransform( 0.920.920.921.0 );
  38.             IridescentMake();
  39.             for ( var i:uint = 0; i < SatelliteAmount; i++ )
  40.             {
  41.                 var s:Satellite = new Satellite();
  42.                 satellites.push( s );
  43.                 WtoS( s );
  44.             }
  45.             addEventListener( Event.ENTER_FRAME, onEnterFrameHandler );
  46.         }
  47.         private function WtoS( t ):void {
  48.             if ( t.pz > -FocalLength ) {
  49.                 t.bv_orgX = t.v_orgX;
  50.                 t.bv_orgY = t.v_orgY;
  51.                 t.bv_trmX = t.v_trmX;
  52.                 t.bv_trmY = t.v_trmY;
  53.                 t.bx = t.x;
  54.                 t.by = t.y;
  55.                 t.scale = FocalLength / ( FocalLength + t.pz );
  56.                 t.x = STAGE_CENTER_X + t.px * t.scale;
  57.                 t.y = STAGE_CENTER_Y + t.py * t.scale;
  58.                 t.v_orgX = STAGE_CENTER_X + t.orgX * t.scale;
  59.                 t.v_orgY = STAGE_CENTER_Y + t.orgY * t.scale;
  60.                 t.v_trmX = STAGE_CENTER_X + t.trmX * t.scale;
  61.                 t.v_trmY = STAGE_CENTER_Y + t.trmY * t.scale;
  62.                 t.scaleX = t.scaleY = t.scale;
  63.                 t.visible = true;
  64.             } else {
  65.                 t.visible = false;
  66.             }
  67.         }
  68.         private function onEnterFrameHandler( e:Event ) {
  69.             _canvas.lock();
  70.             _canvas.colorTransform(_rect, cTra);
  71.             for ( var i:uint = 0; i < SatelliteAmount; i++ )
  72.             {
  73.                 var s = satellites[ i ];
  74.                 s.motion();
  75.                 s.axisCalculate();
  76.                 WtoS( s );
  77.                 var varX:Number = ( s.v_trmX - s.v_orgX ) / rAcrc;
  78.                 var varY:Number = ( s.v_trmY - s.v_orgY ) / rAcrc;
  79.                 var b_varX:Number = ( s.bv_trmX - s.bv_orgX ) / rAcrc;
  80.                 var b_varY:Number = ( s.bv_trmY - s.bv_orgY ) / rAcrc;
  81.                 for ( var j:uint = 0; j < rAcrc; j++ )
  82.                 {
  83.                     var line:Sprite = new Sprite();
  84.                     line.graphics.lineStyle( 1.6, grad.getColor( j / rAcrc ) );
  85.                     line.graphics.moveTo( s.x + varX * j - varX * rAcrc / 2, s.y + varY * j - varY * rAcrc / 2 );
  86.                     line.graphics.lineTo( s.bx + b_varX * j - b_varX * rAcrc / 2, s.by + b_varY * j - b_varY * rAcrc / 2 );
  87.                     _canvas.draw( line )
  88.                 }
  89.             }
  90.             _canvas.unlock();
  91.         }
  92.         private function IridescentMake():void {
  93.             grad = new Gradation( 0x660066, 0x0000FF, 0x00FFFF, 0x00FF00, 0xFFFF00, 0xFF6600, 0xFF0000 );
  94.             grad.setEasing(Circ.easeInOut);
  95.         }
  96.     }
  97. }
  98. import flash.display.Sprite;
  99. class Satellite extends Sprite {
  100.     public var scale:Number;
  101.     public var px:Number;
  102.     public var py:Number;
  103.     public var pz:Number;
  104.     public var vx:Number;
  105.     public var vy:Number;
  106.     public var vz:Number;
  107.     public var line_width:Number;
  108.     public var pr:Number;
  109.     public var vr:Number;
  110.     public var orgX:Number;
  111.     public var orgY:Number;
  112.     public var orgZ:Number;
  113.     public var trmX:Number;
  114.     public var trmY:Number;
  115.     public var trmZ:Number;
  116.     public var v_orgX:Number;
  117.     public var v_orgY:Number;
  118.     public var bv_orgX:Number;
  119.     public var bv_orgY:Number;
  120.     public var v_trmX:Number;
  121.     public var v_trmY:Number;
  122.     public var bv_trmX:Number;
  123.     public var bv_trmY:Number;
  124.     public var bx:Number;
  125.     public var by:Number;
  126.     public var hx:Number;
  127.     public var hy:Number;
  128.     public var hz:Number;
  129.     public var ratioX:Number;
  130.     public var ratioY:Number;
  131.     public var ratioZ:Number;
  132.     public var friction:int;
  133.     public var depth:int;
  134.     public function Satellite() {
  135.         init();
  136.     }
  137.     private function init():void {
  138.         line_width = 6;
  139.         px = Math.random() * 240 - 120;
  140.         py = Math.random() * 240 - 120;
  141.         pz = Math.random() * 240 - 120;
  142.         hx = 0;
  143.         hy = 0;
  144.         hz = 0;
  145.         friction = 1;
  146.         depth = 640;
  147.         ratioX = ( Math.random() * 4 + 2 ) / depth;
  148.         ratioY = ( Math.random() * 4 + 2 ) / depth;
  149.         ratioZ = ( Math.random() * 4 + 2 ) / depth;
  150.         vx = 0;
  151.         vy = 0;
  152.         vz = 0;
  153.         pr = 0;
  154.         vr = Math.random() * 0.6 - 0.3;
  155.         axisCalculate();
  156.     }
  157.     public function motion():void {
  158.         vx = ( vx * friction) + ( ( hx - px ) * ratioX );
  159.         vy = ( vy * friction) + ( ( hy - py ) * ratioY );
  160.         vz = ( vz * friction) + ( ( hz - pz ) * ratioZ );
  161.         px += vx;
  162.         py += vy;
  163.         pz += vz;
  164.         if ( Math.abs( px ) < 8 && Math.abs( py ) < 8  && Math.abs( pz ) < 8 ) {
  165.             if( Math.abs( vx ) < 1 && Math.abs( vy ) < 1  && Math.abs( vz ) < 1 ){
  166.                 init();
  167.             }
  168.         }
  169.     }
  170.     public function axisCalculate():void {
  171.         var pp_orgX:Number = px + 0;
  172.         var pp_orgY:Number = py + line_width / 2;
  173.         var pp_orgZ:Number = pz + 0;
  174.         var pp_trmX:Number = px + 0;
  175.         var pp_trmY:Number = py - line_width / 2;
  176.         var pp_trmZ:Number = pz + 0;
  177.         var angle:Number = Math.atan2( py, px );
  178.         pr += vr;
  179.         angle += pr;
  180.         var p_orgX:Number = Math.cos( angle ) * ( pp_orgX - px ) - Math.sin( angle ) * ( pp_orgY - py );
  181.         var p_orgY:Number = Math.cos( angle ) * ( pp_orgY - py ) + Math.sin( angle ) * ( pp_orgX - px );
  182.         var p_trmX:Number = Math.cos( angle ) * ( pp_trmX - px ) - Math.sin( angle ) * ( pp_trmY - py );
  183.         var p_trmY:Number = Math.cos( angle ) * ( pp_trmY - py ) + Math.sin( angle ) * ( pp_trmX - px );
  184.         p_orgX += px;
  185.         p_orgY += py;
  186.         p_trmX += px;
  187.         p_trmY += py;
  188.         orgX = p_orgX;
  189.         orgY = p_orgY;
  190.         trmX = p_trmX;
  191.         trmY = p_trmY;
  192.     }
  193. }
  194. import frocessing.color.ColorLerp;
  195. import org.libspark.betweenas3.core.easing.IEasing;
  196. import org.libspark.betweenas3.easing.Linear;
  197. class Gradation {
  198.     private var _colors:Array;
  199.     private var _easing:IEasing;
  200.     public function Gradation(...args) {
  201.         _colors = args.concat();
  202.         _easing = Linear.linear;
  203.     }
  204.     public function setEasing(easing:IEasing):void {
  205.         _easing = easing;
  206.     }
  207.     public function getColor(position:Number):uint {
  208.         position = (position < 0 ? 0 : position > 1 ? 1 : position) * (_colors.length - 1);
  209.         var idx:int = position;
  210.         var alpha:Number = _easing.calculate(position - idx, 011);
  211.         if (alpha == 0) {
  212.             return _colors[idx];
  213.         } else {
  214.             return ColorLerp.lerp(_colors[idx], _colors[idx + 1], alpha);
  215.         }
  216.     }
  217. }
flash swf thumbnail play
出題者からのコメント
いちばん虹っぽかったYO!
Comments from King
The most similar to the rainbow!

ad

Professional

QueenosamX

  1. // forked from checkmate's Saqoosha challenge for professionals
  2. package 
  3. {
  4.     import flash.display.Bitmap;
  5.     import flash.display.BitmapData;
  6.     import flash.display.Sprite;
  7.     import flash.events.Event;
  8.     import flash.events.TimerEvent;
  9.     import flash.filters.BlurFilter;
  10.     import flash.geom.Point;
  11.     import flash.text.TextField;
  12.     import flash.text.TextFormat;
  13.     import flash.utils.Timer;
  14.     import org.libspark.betweenas3.BetweenAS3;
  15.     import org.libspark.betweenas3.easing.*;
  16.     import org.libspark.betweenas3.tweens.ITween;
  17.     import org.libspark.betweenas3.events.TweenEvent;
  18.     
  19.     /**
  20.      * おまえん家のマウスカーソル。なんかスメるんだけど。
  21.      */
  22.     [SWF(width=465, height=465, backgroundColor=0xffffff, frameRate=30)]
  23.     public class Smell extends Sprite
  24.     {
  25.         private var smellPoint:Point;
  26.         
  27.         private var flyPoint:Point;
  28.         private var flyRot:Number = 0;
  29.         private var flyPointArr:Array;
  30.         private const LENGTH:uint = 5;
  31.         private var boSprite:Sprite;
  32.         private var buTf:TextField;
  33.         private var nnTf:TextField;
  34.         private var paletteArr:Array;
  35.         
  36.         public function Smell():void 
  37.         {
  38.             initSmell();
  39.             initFly();
  40.             addEventListener(Event.ENTER_FRAME, onEnterFrame);
  41.             var timer:Timer = new Timer(6000);
  42.             timer.addEventListener(TimerEvent.TIMER, timerHandler);
  43.             timer.start();
  44.             
  45.             createSmell();
  46.         }
  47.         
  48.         private function initSmell():void {
  49.             smellPoint = new Point(stage.stageWidth / 2, stage.stageHeight / 2);
  50.             paletteArr = [0xcc6600, 0xcc6666, 0xcc6600, 0x663300, 0xffcc00];
  51.         }
  52.         
  53.         private function initFly():void {
  54.             flyPoint = new Point(stage.stageWidth / 2, stage.stageHeight / 2);
  55.             flyPointArr = new Array();
  56.             
  57.             //ブ
  58.             buTf = new TextField();
  59.             buTf.selectable = false;
  60.             buTf.defaultTextFormat = new TextFormat(nullnull, 0x0, true);
  61.             buTf.text = 'ブ';
  62.             addChild(buTf);
  63.             
  64.             //ー
  65.             boSprite = new Sprite();
  66.             addChild(boSprite);
  67.             
  68.             //ン
  69.             nnTf = new TextField();
  70.             nnTf.selectable = false;
  71.             nnTf.defaultTextFormat = new TextFormat(nullnull, 0x0, true);
  72.             nnTf.text = 'ン';
  73.             addChild(nnTf);
  74.             
  75.             //init flyPointArr
  76.             for (var i:uint = 0; i < LENGTH; i++) {
  77.                 flyPointArr[i] = new Point(stage.stageWidth / 2, stage.stageHeight / 2);
  78.             }
  79.         }
  80.         
  81.         private function createSmellBmp(size:uint):Bitmap {
  82.             var tf:TextField = new TextField();
  83.             tf.x = stage.stageWidth * Math.random();
  84.             tf.y = stage.stageHeight * Math.random();
  85.             var fmt:TextFormat = new TextFormat('MS 明朝', size, 0xcc6600, true);
  86.             fmt.color = paletteArr[Math.floor(Math.random()*5)];
  87.             tf.defaultTextFormat = fmt;
  88.             tf.text = "もわっ";
  89.             tf.background = false;
  90.             tf.width = tf.textWidth + 10;
  91.             tf.height = tf.textHeight + 10;
  92.             tf.selectable = false;
  93.             tf.filters = [ new BlurFilter() ];
  94.             var bmd:BitmapData = new BitmapData(tf.width, tf.height, true, 0xFFFFFF);
  95.             bmd.draw(tf);
  96.             return new Bitmap(bmd);
  97.         }
  98.         
  99.         private function createSmell():void {
  100.             var size:uint = Math.floor(Math.random() * 24 + 8);
  101.             var rot:Number = 360 * Math.random();
  102.             var bmp:Bitmap = createSmellBmp(size);
  103.             addChild(bmp);
  104.             bmp.rotation = rot + 90;
  105.             bmp.x = smellPoint.x;
  106.             bmp.y = smellPoint.y;
  107.             bmp.scaleX = 0;
  108.             bmp.scaleY = 0;
  109.             var tween:ITween = BetweenAS3.tween(bmp, 
  110.             {    x:bmp.x + 5 * size * Math.cos(Math.PI * rot / 180) ,
  111.                 y:bmp.y + 5 * size * Math.sin(Math.PI * rot / 180) ,
  112.                 scaleX:3 ,
  113.                 scaleY:3 ,
  114.                 alpha:0
  115.             },
  116.             null2);
  117.             tween.addEventListener(TweenEvent.COMPLETE, function(e:TweenEvent):void {
  118.                 removeChild(bmp);
  119.                 bmp = null;
  120.             });
  121.             tween.play();
  122.         }
  123.         
  124.         private function timerHandler(e:TimerEvent):void {
  125.             BetweenAS3.tween(flyPoint, {x: smellPoint.x, y: smellPoint.y }, null0.5, Back.easeOutWith(1.9)).play();
  126.         }
  127.         
  128.         private function onEnterFrame(e:Event):void {
  129.             smellPoint.x += (stage.mouseX - smellPoint.x) / 10;
  130.             smellPoint.y += (stage.mouseY - smellPoint.y) / 10;
  131.             if (Math.floor(Math.random() * 3) == 0) createSmell();
  132.             
  133.             flyRot = (flyRot + 10) % 360;
  134.             buTf.x = flyPoint.x + 150 * Math.cos(Math.PI * flyRot / 180);
  135.             buTf.y = flyPoint.y + 30 * Math.sin(Math.PI * flyRot / 180);
  136.             refreshFlyPoint(new Point(buTf.x, buTf.y));
  137.             var tp:Point = flyPointArr[LENGTH-1as Point;
  138.             nnTf.x = tp.x;
  139.             nnTf.y = tp.y;
  140.             drawBo();
  141.         }
  142.         
  143.         private function refreshFlyPoint(p:Point):void {
  144.             for (var i:uint = LENGTH; i > 0; i--) {
  145.                 flyPointArr[i] = flyPointArr[i - 1];
  146.             }
  147.             flyPointArr[0] = p;
  148.         }
  149.         
  150.         private function drawBo():void {
  151.             boSprite.graphics.clear();
  152.             boSprite.graphics.lineStyle(1);
  153.             for (var i:uint = 1; i < LENGTH - 2; i++) {
  154.                 boSprite.graphics.moveTo(flyPointArr[i].x, flyPointArr[i].y+7);
  155.                 boSprite.graphics.lineTo(flyPointArr[i+1].x, flyPointArr[i+1].y+7);
  156.             }
  157.         }
  158.     }
  159.     
  160. }
flash swf thumbnail play
出題者からのコメント
これはスメる、かなりスメる! でも僕のカーソルはそんなに臭くないお!
Comments from King
This one seems smelly, pretty smelly. But my cursor is not that stinky though!

Bishopmex_takagi

  1. package 
  2. {
  3.     import flash.display.BitmapData;
  4.     import flash.display.Sprite;
  5.     import flash.display.Bitmap;
  6.     import flash.events.Event;
  7.     import flash.filters.BlurFilter;
  8.     import flash.filters.GlowFilter;
  9.     import flash.filters.GradientGlowFilter;
  10.     import flash.geom.Matrix;
  11.     
  12.     [SWF(width = 465, height = 465, backgroundColor = 0xffffff, frameRate = 30)]
  13.     public class FlashTest extends Sprite
  14.     {
  15.         private var _figureArray:Array;
  16.         private var _canvasSprite:Sprite;
  17.         private var _canvasBmd:BitmapData;
  18.         private var _canvas:Bitmap;
  19.         private var _blurFileter:BlurFilter;
  20.         private var _glowFileter:GradientGlowFilter;
  21.         /**
  22.          * constructor
  23.          */
  24.         public function FlashTest()
  25.         {
  26.             _figureArray = [[00000100101],
  27.                             [00000100000],
  28.                             [00000100000],
  29.                             [11111111111],
  30.                             [00000100000],
  31.                             [00000100000],
  32.                             [00010101000],
  33.                             [00100100100],
  34.                             [00100100100],
  35.                             [01000100010],
  36.                             [01000100010]];
  37.             
  38.             _canvasSprite = new Sprite();
  39.             _canvasBmd = new BitmapData(stage.stageWidth, stage.stageHeight, true, 0xFF000000);
  40.             _canvas = new Bitmap(_canvasBmd);
  41.             
  42.             _glowFileter = new GradientGlowFilter(1090, [0xFF0000, 0xFFFF00, 0xFFFFFF], [0.80.61], [0120255], 81011);
  43.             _blurFileter = new BlurFilter(10101);
  44.             _canvasSprite.filters = [_blurFileter, _glowFileter];
  45.             
  46.             var i:uint = 0;
  47.             var row:uint = _figureArray.length;
  48.             for (i = 0; i < row;i++ )
  49.             {
  50.                 var line:uint = _figureArray[i].length;
  51.                 for (var j:uint = 0; j < line;j++ )
  52.                 {
  53.                     if (_figureArray[i][j] == 1)
  54.                     {
  55.                         var unit:BallUnit = new BallUnit();
  56.                         unit.x = j * 20;
  57.                         unit.y = i * 20;
  58.                         _canvasSprite.addChild(unit);
  59.                     }
  60.                 }
  61.             }
  62.             
  63.             addChild(_canvas);
  64.             addEventListener(Event.ENTER_FRAME, enterFrameHandler);
  65.         }
  66.         /**
  67.          * enterFrameHandler
  68.          * @param event Event
  69.          */
  70.         private function enterFrameHandler(event:Event):void 
  71.         {
  72.             _canvas.bitmapData.dispose();
  73.             var bmd:BitmapData = new BitmapData(stage.stageWidth, stage.stageHeight, true, 0xFF000000);
  74.             var matrix:Matrix = new Matrix();
  75.             matrix.translate( 150160);
  76.             bmd.lock();
  77.             bmd.draw(_canvasSprite, matrix);
  78.             bmd.unlock();
  79.             bmd.paletteMap(bmd, bmd.rect, bmd.rect.topLeft, nullnullnull);
  80.             _canvas.bitmapData = bmd;
  81.         }
  82.     }
  83. }
  84. import flash.display.Sprite
  85. class BallUnit extends Sprite
  86. {
  87.     private var _ballArray:Array;
  88.     /**
  89.      * constructor
  90.      */
  91.     public function BallUnit()
  92.     {
  93.         _ballArray = new Array();
  94.         
  95.         for (var i:uint = 0; i < 5;i++ )
  96.         {
  97.             var ball:Ball = new Ball(35 - (i * 4));
  98.             ball.y = -i * 5;
  99.             _ballArray.push(ball);
  100.             if (i != 0)
  101.             {
  102.                 _ballArray[i - 1].addChild(ball);
  103.             }
  104.             else
  105.             {
  106.                 addChild(ball);
  107.             }
  108.         }
  109.     }
  110. }
  111. import flash.display.Sprite
  112. import flash.events.Event;
  113. import flash.filters.BlurFilter;
  114. class Ball extends Sprite
  115. {
  116.     /**
  117.      * constructor
  118.      * @param size
  119.      */
  120.     public function Ball(size:uint)
  121.     {
  122.         var sprite:Sprite = new Sprite();
  123.         sprite.graphics.beginFill(0xFFFFFF);
  124.         sprite.graphics.drawCircle(00, size / 2);
  125.         sprite.graphics.endFill();
  126.         sprite.x = -size / 2;
  127.         sprite.y = -size / 2;
  128.         
  129.         var filter:BlurFilter = new BlurFilter();
  130.         sprite.filters = [filter];
  131.         
  132.         addChild(sprite);
  133.         addEventListener(Event.ENTER_FRAME, enterFrameHandler);
  134.     }
  135.     /**
  136.      * enterFrameHandler
  137.      * @param event
  138.      */
  139.     private function enterFrameHandler(event:Event):void
  140.     {
  141.         x += Math.random() * Math.random()*(2 - (-2) + 1) + (-2) - x;
  142.         y += Math.random() * Math.random()*(6 - (-6) + 1) + (-6) - y - 6;
  143.     }
  144. }
flash swf thumbnail play
出題者からのコメント
ボボボボボボボボボーボボボボボーボボボボ。よー燃えとる。
Comments from King
Bobobobobobobo! Bobobobobobobo! Bobobobobobobo! It's burning.

Knightsoundkitchen

  1. package
  2. {
  3.     import flash.display.BlendMode;
  4.     import flash.display.Bitmap;
  5.     import flash.display.BitmapData;
  6.     import flash.display.Sprite;
  7.     import flash.events.Event;
  8.     import flash.events.TimerEvent;
  9.     import flash.text.TextField;
  10.     import flash.text.TextFieldAutoSize;
  11.     import flash.text.TextFormat;
  12.     import flash.filters.BitmapFilterQuality;
  13.     import flash.filters.BlurFilter;
  14.     import flash.geom.Point;
  15.     import flash.utils.Timer;
  16.     import com.flashdynamix.utils.SWFProfiler;
  17.     import frocessing.color.ColorHSV;
  18.     import org.libspark.betweenas3.BetweenAS3;
  19.     import org.libspark.betweenas3.easing.*;
  20.     import org.libspark.betweenas3.tweens.ITween;
  21.     [SWF(width=465, height=465, frameRate=60, backgroundColor=0x000000)]
  22.     public class Main extends Sprite
  23.     {
  24.         private static var P_ZERO:Point = new Point();
  25.         private static var F_BLUR:BlurFilter = new BlurFilter(44, BitmapFilterQuality.LOW);
  26.         private var _txt:TextField;
  27.         private var _hsv:ColorHSV;
  28.         private var _film:BitmapData;
  29.         private var _timer:Timer;
  30.         private var _activeParticles:Vector.<Particle>;
  31.         private var _inactiveParticles:Vector.<Particle>;
  32.         public function Main()
  33.         {
  34.             addEventListener(Event.ADDED_TO_STAGE, initialize);
  35.         }
  36.         private function initialize(evt:Event):void
  37.         {
  38.             removeEventListener(Event.ADDED_TO_STAGE, initialize);
  39.             SWFProfiler.init(this);
  40.             var i:uint,
  41.                 fmt:TextFormat,
  42.                 bm:Bitmap;
  43.             _activeParticles = new Vector.<Particle>();
  44.             _inactiveParticles = new Vector.<Particle>();
  45.             for (i=0; i<10000; i++)
  46.             {
  47.                 _inactiveParticles.push(new Particle());
  48.             }
  49.             _hsv = new ColorHSV(0111);
  50.             fmt = new TextFormat();
  51.             fmt.font = "Verdana";
  52.             fmt.bold = true;
  53.             fmt.size = 36;
  54.             _txt = new TextField();
  55.             _txt.defaultTextFormat = fmt;
  56.             _txt.autoSize = TextFieldAutoSize.LEFT;
  57.             _txt.text = "パァン!";
  58.             _film = new BitmapData(stage.stageWidth, stage.stageHeight, true0);
  59.             bm = new Bitmap(_film);
  60.             //bm.blendMode = BlendMode.ADD;
  61.             addChild(bm);
  62.             _timer = new Timer(0);
  63.             _timer.addEventListener(TimerEvent.TIMER, timerHandler);
  64.             _timer.start();
  65.             addEventListener(Event.ENTER_FRAME, enterFrameHandler);
  66.         }
  67.         private function enterFrameHandler(evt:Event):void
  68.         {
  69.             var i:uint,
  70.                 p:Particle;
  71.             _hsv.h = ++_hsv.h % 360;
  72.             _film.lock();
  73.             _film.applyFilter(_film, _film.rect, P_ZERO, F_BLUR);
  74.             for (i=0; i<_activeParticles.length; i++)
  75.             {
  76.                 p = _activeParticles[i];
  77.                 p.x += p.vx;
  78.                 p.y += p.vy;
  79.                 p.life--;
  80.                 _film.setPixel32(p.x, p.y, p.color);
  81.                 if (!p.life)
  82.                 {
  83.                     _activeParticles.splice(i, 1);
  84.                     _inactiveParticles.push(p);
  85.                     i--;
  86.                 }
  87.             }
  88.             _film.unlock();
  89.         }
  90.         private function timerHandler(evt:TimerEvent):void
  91.         {
  92.             _timer.delay = (50 + Math.random() * 950) >> 0;
  93.             var sp:Sprite,
  94.                 bm:Bitmap,
  95.                 bmd:BitmapData,
  96.                 t:ITween;
  97.             //_hsv.h = ++_hsv.h % 360;
  98.             _txt.textColor = _hsv.value;
  99.             bmd = new BitmapData(_txt.width, _txt.height, true0);
  100.             bmd.draw(_txt);
  101.             bm = new Bitmap(bmd);
  102.             bm.smoothing = true;
  103.             bm.x -= bm.width >> 1;
  104.             bm.y -= bm.height >> 1;
  105.             sp = new Sprite();
  106.             sp.addChild(bm);
  107.             sp.x = (Math.random() * stage.stageWidth) >> 0;
  108.             sp.y = (Math.random() * stage.stageHeight) >> 0;
  109.             sp.scaleX = 0;
  110.             sp.scaleY = 0;
  111.             sp.rotation = (Math.random() * 360) >> 0;
  112.             //sp.blendMode = BlendMode.ADD;
  113.             addChild(sp);
  114.             t = BetweenAS3.serial(
  115.                 BetweenAS3.to(sp, {
  116.                     'scaleX'1,
  117.                     'scaleY'1,
  118.                     'rotation'0
  119.                 }, 2, Expo.easeIn),
  120.                 BetweenAS3.removeFromParent(sp)
  121.             );
  122.             t.onComplete = tweenComplete;
  123.             t.onCompleteParams = [sp, bm, bmd];
  124.             t.play();
  125.         }
  126.         private function tweenComplete(sp:Sprite, bm:Bitmap, bmd:BitmapData):void
  127.         {
  128.             var i:uint, j:uint, c:uint,
  129.                 cx:Number, cy:Number,
  130.                 angle:Number, strength:Number,
  131.                 p:Particle;
  132.             cx = sp.x + bm.x;
  133.             cy = sp.y + bm.y;
  134.             for (i=0; i<bmd.width; i++)
  135.             {
  136.                 for (j=0; j<bmd.height; j++)
  137.                 {
  138.                     c = bmd.getPixel32(i, j);
  139.                     if (!c) continue;
  140.                     p = _inactiveParticles.length ? _inactiveParticles.shift() : new Particle();
  141.                     angle = Math.random() * Math.PI * 2;
  142.                     strength = Math.random() * 20;
  143.                     p.vx = Math.cos(angle) * strength;
  144.                     p.vy = Math.sin(angle) * strength;
  145.                     p.x = cx + i;
  146.                     p.y = cy + j;
  147.                     p.color = c;
  148.                     p.life = 200;
  149.                     _activeParticles.push(p);
  150.                 }
  151.             }
  152.             bmd.dispose();
  153.         }
  154.     }
  155. }
  156. class Particle
  157. {
  158.     public var vx:Number;
  159.     public var vy:Number;
  160.     public var x:Number;
  161.     public var y:Number;
  162.     public var color:uint;
  163.     public var life:uint;
  164. }
flash swf thumbnail play
出題者からのコメント
パァン!って感じだわ。頭がパァーーン!って感じ。
Comments from King
Pang! Feeling like sound of "Pang" in my head.

ad