flash on 2010-11-29
♥0 |
Line 66 |
Modified 2010-12-16 20:19:21 |
MIT License
archived:2017-03-20 13:09:40
ActionScript3 source code
/**
* Copyright Mushus ( http://wonderfl.net/user/Mushus )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/h1C3
*/
package {
import flash.display.Sprite;
import flash.events.*;
[SWF(backgroundColor = "0x000000", frame = "30")]
//背景色黒
public class FlashTest extends Sprite {
public var testObj:eye = new eye(200,300);
public var sprites:Array = [];
public function FlashTest() {
// write as3 code here..
var x:Number,y:Number;
for(y = 0; y < 20; y++) {
for(x = 0; x < 15; x++) {
sprites[x + y * 15] = new eye( x * 40 + (y%2) * 20, y * 25)
addChild(sprites[x + y * 15]);
sprites[x + y * 15].lookAt(30,30);
sprites[x + y * 15].width = 25;
sprites[x + y * 15].height = 25;
}
}
addEventListener(Event.ENTER_FRAME, loop);
}
public function loop(e:Event):void {
var x:Number, y:Number;
for(y = 0; y < 20; y++) {
for(x = 0; x < 15; x++) {
sprites[x + y * 15].lookAt(stage.mouseX, stage.mouseY);
}
}
}
}
}
import flash.display.Graphics;
import flash.display.Sprite;
class eye extends Sprite {
private var color0:uint = 0xffffff;
//色1 : 黒
private var color1:uint = 0x000000;
//色2 : 白
private var circle:Sprite = null;
//何か
public function eye(x:Number, y:Number) {
this.x = x;
this.y = y;
//描く
var g:Graphics = graphics;
g.beginFill(color0);
g.drawCircle(0,0,100);
g.endFill();
//黒円
g.beginFill(color1);
g.drawCircle(0,0,80);
g.endFill();
//白円
circle = new Sprite();
addChild(circle);
g = circle.graphics;
g.beginFill(color0);
g.drawCircle(0,0,60);
g.endFill();
circle.x = 20;
}
public function lookAt(x:Number, y:Number):void {
var tx:Number = x - this.x;
var ty:Number = y - this.y;
var l:Number = Math.sqrt(tx * tx + ty * ty);
//長さ
if(30 < l) {
tx *= 30 / l;
ty *= 30 / l;
//l = 20;
}
//一定以上はみださないようにする
circle.x = tx;
circle.y = ty;
}
}