// forked from awef's forked from: Saqoosha challenge for amateurs // forked from checkmate's Saqoosha challenge for amateurs package { //鳥のつもり //CHECKMATE参加作品ではありません import flash.display.Sprite; import gs.TweenMax; import gs.easing.*; [SWF(width=465, height=465, backgroundColor=0xeeeeec, frameRate=60)] public class main extends Sprite { public function main() { var grad:Gradation = new Gradation(0xff0000, 0xff4400, 0xffbb00, 0xbbbb00, 0x00bb00, 0x0000ff); var color:uint; var delay:Number; var sp:Sprite; var spsp:Sprite; for (var i:int = 0; i < 75; i++) { sp = new Sprite(); sp.x = -20; sp.y = Math.random() * 200 + 100; sp.rotation = -20; color = grad.getColor((sp.y - 100) / 200); //ボディ sp.graphics.beginFill(color); sp.graphics.drawRect(-10, -5, 20, 10); sp.graphics.endFill(); //目 sp.graphics.beginFill(0xeeeeec); sp.graphics.drawCircle(4, -1, 2); sp.graphics.endFill(); //羽 spsp = new Sprite(); spsp.x = -5; spsp.graphics.beginFill(color); spsp.graphics.drawRect(0, 0, 10, 12); spsp.graphics.endFill(); sp.addChild(spsp); addChild(sp); delay= Math.random() * 3; //はばたき TweenMax.to(spsp, 0.2, { delay : delay, yoyo : 0, rotationX : 180, ease : Linear.easeNone } ); //飛行 TweenMax.to(sp, 3, { delay : delay, loop : 0, x : 465 + 20, y : sp.y + Math.random() * 60 - 30, ease : Linear.easeNone } ); } } } } import frocessing.color.ColorLerp; import org.libspark.betweenas3.core.easing.IEasing; import org.libspark.betweenas3.easing.Linear; class Gradation { private var _colors:Array; private var _easing:IEasing; public function Gradation(...args) { _colors = args.concat(); _easing = Linear.linear; } public function setEasing(easing:IEasing):void { _easing = easing; } public function getColor(position:Number):uint { position = (position < 0 ? 0 : position > 1 ? 1 : position) * (_colors.length - 1); var idx:int = position; var alpha:Number = _easing.calculate(position - idx, 0, 1, 1); if (alpha == 0) { return _colors[idx]; } else { return ColorLerp.lerp(_colors[idx], _colors[idx + 1], alpha); } } } forked from: forked from: Saqoosha challenge for amateurs