// forked from nacookan's Tweensyのイージング /** * easeClasses宣言したくない… */ package { import flash.display.*; import flash.events.*; import com.flashdynamix.motion.*; import fl.motion.easing.*; import flash.utils.*; public class FlashTest extends Sprite { public function FlashTest() { var _x:Number = 10; var _y:Number = 0; var size:int = 70; //宣言したくないけど、宣言する。 var easeClasses:Vector.<Class> = Vector.<Class>([ Back, Bounce, Elastic, Linear, Cubic, Quadratic, Circular, Exponential, Sine, Quintic, Quartic ]); var easeTypes:Vector.<String> = Vector.<String>([ "Back", "Bounce", "Elastic", "Linear", "Cubic", "Quadratic", "Circular", "Exponential", "Sine", "Quintic", "Quartic" ]); for each(var easeType:String in easeTypes) { var easeClass:Class = getDefinitionByName("fl.motion.easing." + easeType) as Class; if (easeClass == null) continue; var typeXML:XML = describeType(easeClass); for each(var method:XML in typeXML..method) { addSprite(generateGraph(easeClass[method.@name.toString()]), _x, _y); _x += size; if (_x + size >= 465) { _x = 10; _y += size; } } } } private function generateGraph(ease:Function):Sprite{ var time:Number = 2; var wide:Number = 1; var width:Number = 70; var size:Number = 70; var insize:Number = size * 0.8; var outsize:Number = size * 0.1; var graph:Sprite = new Sprite(); graph.graphics.lineStyle(1, 0x5050e0); graph.graphics.moveTo(0, insize); var dummy:Sprite = new Sprite(); var tl:TweensyTimeline = Tweensy.fromTo(dummy, {y:0}, {y:insize}, time, ease); var frame:Number = 0; dummy.addEventListener(Event.ENTER_FRAME, function(e:Event):void{ if(tl.finished){ dummy.removeEventListener(e.type, arguments.callee); return; } graph.graphics.lineTo(frame++ * wide, insize - dummy.y); }); var grapharea:Sprite = new Sprite(); grapharea.addChild(graph); grapharea.graphics.lineStyle(1, 0xa0a0a0); grapharea.graphics.moveTo(0, outsize); grapharea.graphics.lineTo(width, outsize); grapharea.graphics.moveTo(0, size - outsize); grapharea.graphics.lineTo(width, size - outsize); graph.y = outsize; return grapharea; } private function addSprite(sprite:Sprite, x:Number, y:Number):void{ addChild(sprite); sprite.x = x; sprite.y = y; } } } forked from: Tweensyのイージング