flash on 2010-12-15
♥0 |
Line 82 |
Modified 2010-12-15 13:45:23 |
MIT License
archived:2017-03-30 05:07:56
ActionScript3 source code
/**
* Copyright yama3 ( http://wonderfl.net/user/yama3 )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/an6b
*/
package {
import flash.display.*;
import flash.filters.*;
import flash.text.*;
import flash.events.*;
import flash.geom.*;
import org.libspark.betweenas3.BetweenAS3;
[SWF(backgroundColor="0xffffff", frameRate="30", width="465", height="465")]
public class FlashTest extends Sprite {
private var first: eyeball;
private var obj: eyeball;
private var mousePoint: Point;
private var objs: int;
private function add(o:eyeball):void
{
o.x = Math.random() * stage.stageWidth;
o.y = Math.random() * stage.stageHeight;
if(first) obj = obj.next = o;
else obj = first = o;
BetweenAS3.delay(
BetweenAS3.serial(
BetweenAS3.to(o, {x:o.defaultX, y:o.defaultY, cnt:100},0.5)
), objs++ * 0.01
).play();
}
public function FlashTest() {
var tf:TextField = new TextField();
tf.textColor = 0x000000;
tf.text = "Hello\nWorld!!";
tf.autoSize = "left";
var bd:BitmapData = new BitmapData(tf.width, tf.height, false, 0x3399ff);
bd.draw(tf);
bd.applyFilter(bd, bd.rect, new Point(), new BlurFilter());
bd.draw(tf);
var dx:int = stage.stageWidth-350 >> 1, dy:int = stage.stageHeight-340 >> 1;
for(var ix:uint=0; ix<35;ix++) {
for(var iy:uint=0; iy<34; iy++) {
add(new eyeball(bd.getPixel(ix, iy), ix * 10 + dx, iy * 10 + dy, 4, 20));
}
}
mousePoint = new Point(mouseX, mouseY);
mouseChildren = mouseEnabled = false;
addEventListener(Event.ENTER_FRAME, frame);
}
private function frame(e:Event):void
{
mousePoint.x = mouseX, mousePoint.y = mouseY;
var o:eyeball = first;
do {
o.run(mousePoint);
}
while(o = o.next);
}
}
}
import flash.display.*;
import flash.geom.Point;
class eyeball extends Sprite
{
public var defaultX:uint, defaultY:uint;
public var cnt:int;
private var r:uint;
private var s:uint;
private var dpoint:Point;
private var next:eyeball;
function eyeball(color:uint, arg_x:uint, arg_y:uint, arg_r:uint, arg_s:uint)
{
dpoint = new Point(dafaultX = arg_x, dafaultY = arg_y);
r = arg_r;
s = arg_s;
graphics.beginFill(color, 0.75);
graphics.drawCircle(0, 0, r);
graphics.endFill();
}
public function run(mousePoint:Point):void
{
if(cnt < 99) return;
var dist:Number = Point.distance(dpoint, mousePoint);
var p:Point = Point.polar((dist<s) ? dist:s, -Math.atan2(defaultX - mousePoint.x, dafaultY-mousePoint.y) - 90 * Math.PI / 180);
x = p.x + defaultX, y = p.y + dafaultY;
}
}