flash on 2009-9-21
♥0 |
Line 79 |
Modified 2009-09-21 12:31:22 |
MIT License
archived:2017-03-30 09:38:16
ActionScript3 source code
/**
* Copyright hacker_9p8x8mco ( http://wonderfl.net/user/hacker_9p8x8mco )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/iV5q
*/
<?xml version="1.0" encoding="utf-8"?>
<!-- forked from fff's MXML:chrysanthemum -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
xmlns="*">
<mx:ApplicationControlBar dock="true">
<mx:HSlider id="hs" value="1000" minimum="60" maximum="3600" snapInterval="1"
width="100%" change="mc.n=hs.value;mc.init();"/>
<mx:ColorPicker id="cp" selectedColor="0xffff00"
change="mc.c=cp.selectedColor;mc.init();" />
</mx:ApplicationControlBar>
<mx:Canvas width="100%" height="100%"
backgroundColor="#000000"
backgroundAlpha=".7">
<MyComp id="mc" width="100%" height="100%" />
</mx:Canvas>
<mx:Component className="MyComp">
<mx:UIComponent creationComplete="init()">
<mx:Script>
<![CDATA[
import flash.display.*;
import flash.filters.GlowFilter;
import flash.geom.Point;
public var n:int = 1000;
public var c:int = 0xffff00;
private var chrysanthemum:Shape;
private var pt:Point;
private var v:Array;
public function init():void
{
if (chrysanthemum)
{
chrysanthemum.graphics.clear();
}
else
{
chrysanthemum = new Shape();
chrysanthemum.x = width/2;
chrysanthemum.y = height/2;
addChild(chrysanthemum);
addEventListener(Event.ENTER_FRAME, enterFrameHandler);
}
chrysanthemum.filters = [new GlowFilter(c)];
v = new Array();
// キクの花
var u:Number = 0.0;
var r:Number = 0.0;
var p4:Number = 0.0;
var p8:Number = 0.0;
var pt:Point = new Point();
for(var i:int=0; i<=n; i++)
{
u = i*21.0*Math.PI/n;
p4 = Math.sin(17*u/3);
p8 = Math.sin(2*Math.cos(3*u) - 28*u);
r = 5*(1 + Math.sin(11*u/5)) - 4*Math.pow(p4, 4)*Math.pow(p8, 8);
pt.x = r*Math.cos(u)*20;
pt.y = r*Math.sin(u)*20;
v.push(pt.clone());
}
chrysanthemum.graphics.lineStyle(1, 0xffffff, 0.2);
chrysanthemum.graphics.moveTo(v[0].x, v[0].y);
for (var j:int=1; j<v.length; j++)
chrysanthemum.graphics.lineTo(v[j].x, v[j].y);
chrysanthemum.graphics.lineStyle(2, 0xffffff);
chrysanthemum.graphics.moveTo(v[n-1].x, v[n-1].y);
}
private function enterFrameHandler(e:Event):void
{
chrysanthemum.rotation++;
var pt:Point = v.pop();
if(pt)
{
chrysanthemum.graphics.lineTo(pt.x, pt.y);
}
}
]]>
</mx:Script>
</mx:UIComponent>
</mx:Component>
</mx:Application>