一筆書きで「ク」を書く
注釈した部分で30分近く悩んだ。終わってる(^q^) #59をposx[9] == posx[0]にしていた故
♥0 |
Line 50 |
Modified 2011-08-11 01:02:51 |
MIT License
archived:2017-03-20 13:49:35
ActionScript3 source code
/**
* Copyright Nowloading_ ( http://wonderfl.net/user/Nowloading_ )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/ryHA
*/
package {
import flash.display.Sprite;
import flash.events.Event;
public class FlashTest extends Sprite {
private var posx:Array = [70,90,140,140,110,100,130,130,95,80];
//posxの各値はプログラム中で変わります
private var startx:int = 70;
private var posy:Array = [80,50,50,90,130,130,90,60,60,80];
private var starty:int = 80;
private var a:Array;
private var b:Array;
private var t:int = 0;
private var len:int = posx.length - 1;
public function FlashTest() {
a = new Array();
b = new Array();
a[9] = (posx[0] - posx[9]) / 20;
b[9] = (posy[0] - posy[9]) / 20;
for(var i:int = 0;i<len;i++){
a[i] = (posx[i+1] - posx[i]) / 20;
b[i] = (posy[i+1] - posy[i]) / 20;
}
graphics.lineStyle(1);
init();
}
private function init():void{
addEventListener(Event.ENTER_FRAME,oEF);
}
//全部の線を同時に描画開始
/* private function oEF(e:Event):void{
for(var i:int=0;i<10;i++){
graphics.moveTo(posx[i],posy[i]);
posx[i] = posx[i] + a[i];
posy[i] = posy[i] + b[i];
graphics.lineTo(posx[i],posy[i]);
}
if(posx[0] >= 90){
removeEventListener(Event.ENTER_FRAME,oEF);
graphics.beginFill(0xff9999);
graphics.lineStyle(0);
graphics.lineTo(posx[0],posy[0]);
for(var j:int=0;j<10;j++){
graphics.lineTo(posx[j],posy[j]);
}
}
} */
//一筆書き
private function oEF(e:Event):void{
graphics.moveTo(posx[t],posy[t]);
posx[t] += a[t];
posy[t] += b[t];
graphics.lineTo(posx[t],posy[t]);
if(t < 9){
if((posx[t] == posx[t+1]) && (posy[t] == posy[t+1])){
t+=1;
}
}else if(t==9){
if(posx[9] == startx){
removeEventListener(Event.ENTER_FRAME,oEF);
graphics.beginFill(0xff9999);
graphics.lineStyle(0);
graphics.lineTo(posx[0],posy[0]);
for(var j:int=0;j<10;j++){
graphics.lineTo(posx[j],posy[j]);
}
}
}
}
}
}