NOW LOADINGっぽい感じにしたかった
...
@author kamip
http://d.hatena.ne.jp/kamip/
クリックした場所でくるくる回転
♥2 |
Line 96 |
Modified 2009-10-15 11:35:36 |
MIT License
archived:2017-03-10 21:02:12
ActionScript3 source code
/**
* Copyright kamip ( http://wonderfl.net/user/kamip )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/3rTE
*/
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
/**
* ...
* @author kamip
* http://d.hatena.ne.jp/kamip/
* クリックした場所でくるくる回転
*/
public class LoadingImage extends Sprite
{
Wonderfl.capture_delay( 10 );
public var _size:Number = 25;
public var _speed:Number = 5;//逆回転すると遥かかなたへ・・・
private var _cx:Number = stage.stageWidth / 2 - _size / 2;
private var _cy:Number = stage.stageHeight / 2 - _size / 2;
public function LoadingImage()
{
var alpha:Number = 1.0;
for (var i:int = 1; i < 5; i++){
var sprite:Sprite = makeSprite((i - 1) * 25, 0x80FF00, String(i), alpha);
sprite.addEventListener(Event.ENTER_FRAME, renderSprite);
alpha = alpha - 0.2;
}
stage.addEventListener(MouseEvent.CLICK, onStageClick);
}
public function onStageClick(e:MouseEvent):void {
//_size = Math.round (Math.random () * 200) + 50;
_cx = mouseX - _size / 2;
_cy = mouseY - _size / 2;
}
public function makeSprite(length:Number, color:int, number:String, alpha:Number):Sprite {
var sp:Circle = new Circle(length, color, number, alpha);
sp.name = number;
sp.alpha = alpha;
addChild(sp);
sp._length = length;
var result:Array = lengthToPoint(length);
sp.x = result[0];
sp.y = result[1];
return sp;
}
public function renderSprite(e:Event):void {
var sp:Circle = e.target as Circle;// asしないと使えない予感
var length:Number = sp._length + _speed;
var number:Number = e.target.name;
var result:Array = new Array();
result = lengthToPoint(length);
sp.x = result[0];
sp.y = result[1];
if (length >= _size * 4) {
sp._length = 0;
}else{
sp._length = length;
}
}
public function lengthToPoint(length:Number):Array {
var result:Array = new Array();
var x:Number = 0;
var y:Number = 0;
if (length <= _size) {
x = length;
y = 0;
}else {
if (length >= _size && length < _size * 2) {
x = _size;
y = length - _size;
}else if( length >= _size * 2 && length < _size * 3) {
x = _size - (length - _size * 2);
y = _size;
}else if( length >= _size * 3 && length < _size * 4){
x = _size - _size;
y = _size - (length - _size * 3);
}
}
x += _cx;
y += _cy;
result.push(x);
result.push(y);
return result;
}
}
}
import flash.display.Sprite;
class Circle extends Sprite{
public var _circle:Sprite;
public var _length:Number;
public function Circle(length:Number, color:int, number:String, alpha:Number) {
_circle = new Sprite();
var _circle:Sprite = new Sprite();
this.graphics.beginFill(color);
this.graphics.drawCircle(0, 0, 10);
this.graphics.endFill();
_length = length;
}
public function get length():Number { return _length; }
public function set length(value:Number):void
{
_length = value;
}
}