feat.Kinoppy1 forked from: LivePaintwithSound
forked from LivePaintwithSound (diff: 11)
曲は夢幻のオルゴール工房さんにて配布されているmp3ファイルを使用しています http://www.dream-orgel.net/diary.cgi?no=120&continue=on
ActionScript3 source code
/**
* Copyright HaraMakoto ( http://wonderfl.net/user/HaraMakoto )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/jkwE
*/
package {
import caurina.transitions.Equations;
import caurina.transitions.Tweener;
import caurina.transitions.properties.DisplayShortcuts;
import com.adobe.serialization.json.JSON;
import com.bit101.components.ColorChooser;
import com.bit101.components.PushButton;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.geom.Point;
import flash.geom.Rectangle;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.media.SoundLoaderContext;
import flash.media.SoundMixer;
import flash.media.SoundTransform;
import flash.net.URLRequest;
import flash.system.Security;
import flash.utils.ByteArray;
import flash.utils.getTimer;
/**
* 曲は夢幻のオルゴール工房さんにて配布されているmp3ファイルを使用しています
* http://www.dream-orgel.net/diary.cgi?no=120&continue=on
*/
[SWF(width="465", height="465", backgroundColor="#000000", frameRate=30)]
public class LineReader extends Sprite
{
private var _field:Sprite = new Sprite();
private var _paintField:Sprite = new Sprite();
private var _uiField:Sprite = new Sprite();
private var _stopUiField:Sprite = new Sprite();
private var _startField:Sprite = new Sprite();
//Clearエフェクト
private var _clearEffBmp:Bitmap = new Bitmap();
private var _clearBmd:BitmapData = new BitmapData(465,465,true,0);
//座標リスト
private var _pointListList:Array = new Array();
private var _currentListIndex:int = 0;
private var _actionFlg:Boolean = true;
/**
* params
*/
private var _col:Number = 0xFFFFFF;
/**
* Sound parts
*/
private var player:Object = new Object();
private var loader:Loader = new Loader();
private var bA:ByteArray;
private var spectrum:Array;
public static var lowVal:Number=0;
public static var middleVal:Number=0;
public static var highVal:Number = 0;
private var sound:Sound;
private var _ch:SoundChannel;
/**
* UI
*/
private var _colSelector:ColorSelector;
private var _colChooser:ColorChooser;
/**
* RECORD
*/
private var _rec:DrawRecoder = new DrawRecoder();
private var _player:DrawPlayer = new DrawPlayer();
/**
* TIMER
*/
private var _startTime:int;
public function LineReader()
{
init();
setupDisplay();
}
public function init():void {
DisplayShortcuts.init();
Security.loadPolicyFile("http://swimmingbird.heteml.jp/crossdomain.xml");
_field.graphics.clear();
_field.graphics.beginFill(0xCCCCCC,0);
_field.graphics.drawRect(0,0,465,465);
_field.graphics.endFill();
//UI Starting
var _startButton:PushButton = new PushButton(_startField,20,20,"start", startHandler);
//UI Playing
// var _actionBtn:PushButton = new PushButton(_uiField,20,20,"action",actionHandler);
// var _noActionBtn:PushButton = new PushButton(_uiField,20,45,"noAction",noActionHandler);
var _clearBtn:PushButton = new PushButton(_uiField,20,20,"clear",clearHandler);
var _plotBtn:PushButton = new PushButton(_uiField,20,45,"plot",plotHandler);
var _stopBtn:PushButton = new PushButton(_uiField,20,120,"stop",stopHandler);
//UI Stop
var _playDataBtn:PushButton = new PushButton(_stopUiField,20,20,"play",playDataHandler);
var _stopDrawBtn:PushButton = new PushButton(_stopUiField,20,45,"stop",stopDrawHandler);
_colSelector = new ColorSelector();
// _colChooser = new ColorChooser(_uiField,20,145);
//Effect Init
_clearEffBmp.bitmapData = _clearBmd;
_clearEffBmp.visible = false;
_clearEffBmp.alpha = 0;
//座標リスト
var comListString:String = '[{"childlist":[{"time":1797,"x":104,"y":166},{"time":1818,"x":103,"y":174},{"time":1838,"x":102,"y":181},{"time":1858,"x":102,"y":183},{"time":1899,"x":102,"y":184},{"time":2103,"x":101,"y":184},{"time":2123,"x":96,"y":184},{"time":2143,"x":92,"y":186},{"time":2163,"x":86,"y":188},{"time":2183,"x":82,"y":190},{"time":2203,"x":80,"y":191},{"time":2223,"x":77,"y":193},{"time":2243,"x":74,"y":196},{"time":2263,"x":71,"y":198},{"time":2283,"x":68,"y":200},{"time":2303,"x":67,"y":201},{"time":2549,"x":70,"y":202},{"time":2569,"x":76,"y":205},{"time":2589,"x":81,"y":206},{"time":2609,"x":87,"y":207},{"time":2629,"x":88,"y":208},{"time":2649,"x":89,"y":208},{"time":2669,"x":91,"y":208},{"time":2689,"x":92,"y":208},{"time":2710,"x":93,"y":208},{"time":2731,"x":94,"y":208},{"time":2772,"x":95,"y":208},{"time":2855,"x":96,"y":208},{"time":2896,"x":97,"y":208},{"time":2917,"x":98,"y":208},{"time":2957,"x":99,"y":208},{"time":3060,"x":99,"y":209},{"time":3081,"x":99,"y":214},{"time":3101,"x":99,"y":220},{"time":3122,"x":99,"y":227},{"time":3142,"x":99,"y":232},{"time":3162,"x":99,"y":236},{"time":3182,"x":100,"y":241},{"time":3202,"x":101,"y":242},{"time":3242,"x":101,"y":243},{"time":3262,"x":102,"y":244},{"time":3283,"x":102,"y":246},{"time":3303,"x":103,"y":246},{"time":3405,"x":103,"y":247},{"time":3489,"x":104,"y":246},{"time":3509,"x":108,"y":242},{"time":3529,"x":111,"y":239},{"time":3550,"x":114,"y":233},{"time":3570,"x":117,"y":229},{"time":3590,"x":118,"y":224},{"time":3610,"x":119,"y":222},{"time":3630,"x":120,"y":219},{"time":3651,"x":120,"y":218},{"time":3692,"x":121,"y":218},{"time":3734,"x":121,"y":217},{"time":3755,"x":121,"y":216},{"time":3858,"x":121,"y":215},{"time":3941,"x":121,"y":216},{"time":3961,"x":123,"y":220},{"time":3981,"x":126,"y":223},{"time":4001,"x":130,"y":229},{"time":4021,"x":134,"y":233},{"time":4041,"x":137,"y":235},{"time":4061,"x":141,"y":238},{"time":4081,"x":145,"y":240},{"time":4102,"x":148,"y":242},{"time":4122,"x":151,"y":244},{"time":4142,"x":152,"y":245},{"time":4164,"x":154,"y":245},{"time":4185,"x":155,"y":245},{"time":4225,"x":156,"y":245},{"time":4268,"x":157,"y":245},{"time":4614,"x":145,"y":206},{"time":4625,"x":144,"y":205},{"time":4637,"x":142,"y":203},{"time":4649,"x":141,"y":203},{"time":4661,"x":140,"y":202},{"time":4674,"x":139,"y":201},{"time":4688,"x":138,"y":201},{"time":4716,"x":137,"y":201},{"time":4730,"x":136,"y":200},{"time":4745,"x":135,"y":200},{"time":4776,"x":134,"y":200},{"time":5134,"x":137,"y":193},{"time":5158,"x":140,"y":188},{"time":5181,"x":143,"y":185},{"time":5204,"x":145,"y":182},{"time":5226,"x":147,"y":179},{"time":5247,"x":148,"y":178},{"time":5268,"x":148,"y":177},{"time":5289,"x":149,"y":177},{"time":5310,"x":149,"y":176},{"time":5351,"x":149,"y":175},{"time":5569,"x":147,"y":175},{"time":5587,"x":145,"y":175},{"time":5607,"x":143,"y":176},{"time":5626,"x":141,"y":177},{"time":5646,"x":138,"y":178},{"time":5666,"x":136,"y":179},{"time":5687,"x":134,"y":179},{"time":5707,"x":133,"y":180},{"time":5727,"x":132,"y":180},{"time":5748,"x":131,"y":181},{"time":5768,"x":129,"y":181},{"time":5788,"x":126,"y":182},{"time":5809,"x":124,"y":183},{"time":5832,"x":122,"y":184},{"time":5852,"x":121,"y":184},{"time":5872,"x":121,"y":185},{"time":5892,"x":120,"y":185},{"time":5914,"x":119,"y":186},{"time":5934,"x":118,"y":186},{"time":6160,"x":118,"y":182},{"time":6181,"x":117,"y":179},{"time":6201,"x":116,"y":177},{"time":6221,"x":115,"y":175},{"time":6241,"x":114,"y":174},{"time":6262,"x":113,"y":174},{"time":6283,"x":112,"y":173},{"time":6303,"x":112,"y":172},{"time":6323,"x":111,"y":172},{"time":6343,"x":109,"y":171},{"time":6384,"x":108,"y":170},{"time":6404,"x":107,"y":170},{"time":6444,"x":106,"y":169},{"time":6465,"x":105,"y":169},{"time":6485,"x":104,"y":169},{"time":6505,"x":102,"y":168},{"time":6546,"x":101,"y":168},{"time":6649,"x":102,"y":166}],"id":0,"type":"draw","col":16777010,"time":1636,"fx":105,"fy":161},{"childlist":[{"time":7805,"x":267,"y":144},{"time":7826,"x":266,"y":144},{"time":7848,"x":262,"y":148},{"time":7868,"x":258,"y":154},{"time":7888,"x":255,"y":158},{"time":7908,"x":254,"y":162},{"time":7933,"x":253,"y":165},{"time":7973,"x":252,"y":166},{"time":7993,"x":252,"y":167},{"time":8014,"x":251,"y":168},{"time":8035,"x":251,"y":169},{"time":8341,"x":249,"y":169},{"time":8368,"x":240,"y":168},{"time":8389,"x":235,"y":168},{"time":8410,"x":228,"y":170},{"time":8431,"x":223,"y":171},{"time":8452,"x":220,"y":172},{"time":8472,"x":218,"y":173},{"time":8493,"x":217,"y":173},{"time":8515,"x":215,"y":175},{"time":8535,"x":214,"y":175},{"time":8555,"x":212,"y":176},{"time":8575,"x":211,"y":176},{"time":8597,"x":210,"y":177},{"time":8904,"x":213,"y":180},{"time":8924,"x":216,"y":183},{"time":8944,"x":222,"y":186},{"time":8967,"x":227,"y":187},{"time":8988,"x":230,"y":188},{"time":9009,"x":233,"y":189},{"time":9032,"x":235,"y":190},{"time":9053,"x":236,"y":190},{"time":9073,"x":237,"y":190},{"time":9094,"x":238,"y":191},{"time":9115,"x":239,"y":191},{"time":9135,"x":241,"y":191},{"time":9175,"x":242,"y":192},{"time":9199,"x":243,"y":192},{"time":9219,"x":244,"y":192},{"time":9239,"x":245,"y":192},{"time":9281,"x":246,"y":192},{"time":9322,"x":247,"y":192},{"time":9429,"x":247,"y":193},{"time":9451,"x":241,"y":198},{"time":9472,"x":235,"y":205},{"time":9503,"x":231,"y":213},{"time":9523,"x":230,"y":220},{"time":9542,"x":229,"y":226},{"time":9563,"x":229,"y":227},{"time":9583,"x":229,"y":229},{"time":9603,"x":229,"y":231},{"time":9624,"x":229,"y":232},{"time":9644,"x":229,"y":234},{"time":9890,"x":231,"y":233},{"time":9911,"x":237,"y":230},{"time":9932,"x":241,"y":227},{"time":9953,"x":246,"y":223},{"time":9973,"x":250,"y":220},{"time":9993,"x":252,"y":217},{"time":10015,"x":257,"y":212},{"time":10035,"x":259,"y":210},{"time":10056,"x":260,"y":209},{"time":10100,"x":261,"y":209},{"time":10327,"x":263,"y":214},{"time":10348,"x":266,"y":219},{"time":10368,"x":268,"y":223},{"time":10389,"x":271,"y":227},{"time":10410,"x":275,"y":231},{"time":10433,"x":278,"y":233},{"time":10454,"x":279,"y":234},{"time":10475,"x":280,"y":236},{"time":10494,"x":281,"y":237},{"time":10515,"x":283,"y":238},{"time":10535,"x":283,"y":239},{"time":10555,"x":284,"y":239},{"time":10598,"x":285,"y":239},{"time":10681,"x":286,"y":239},{"time":10702,"x":287,"y":238},{"time":10723,"x":290,"y":232},{"time":10743,"x":291,"y":229},{"time":10767,"x":291,"y":223},{"time":10787,"x":291,"y":219},{"time":10808,"x":291,"y":217},{"time":10833,"x":290,"y":214},{"time":10853,"x":289,"y":211},{"time":10872,"x":288,"y":209},{"time":10893,"x":287,"y":206},{"time":10913,"x":287,"y":205},{"time":10934,"x":287,"y":204},{"time":10974,"x":287,"y":202},{"time":10995,"x":286,"y":201},{"time":11016,"x":286,"y":200},{"time":11036,"x":285,"y":199},{"time":11056,"x":284,"y":197},{"time":11097,"x":284,"y":196},{"time":11117,"x":283,"y":195},{"time":11179,"x":282,"y":195},{"time":11301,"x":282,"y":194},{"time":11342,"x":284,"y":193},{"time":11366,"x":292,"y":189},{"time":11387,"x":298,"y":186},{"time":11408,"x":300,"y":184},{"time":11432,"x":301,"y":184},{"time":11452,"x":302,"y":184},{"time":11472,"x":304,"y":183},{"time":11493,"x":305,"y":183},{"time":11514,"x":306,"y":182},{"time":11534,"x":307,"y":182},{"time":11554,"x":308,"y":182},{"time":11575,"x":310,"y":182},{"time":11600,"x":311,"y":182},{"time":11642,"x":312,"y":182},{"time":11766,"x":312,"y":181},{"time":11786,"x":311,"y":179},{"time":11806,"x":309,"y":176},{"time":11826,"x":307,"y":174},{"time":11847,"x":303,"y":172},{"time":11866,"x":300,"y":171},{"time":11886,"x":295,"y":169},{"time":11906,"x":292,"y":169},{"time":11927,"x":289,"y":168},{"time":11948,"x":288,"y":167},{"time":11968,"x":286,"y":167},{"time":11989,"x":282,"y":167},{"time":12009,"x":280,"y":167},{"time":12030,"x":278,"y":167},{"time":12051,"x":277,"y":167},{"time":12133,"x":276,"y":167},{"time":12340,"x":276,"y":166},{"time":12361,"x":274,"y":163},{"time":12382,"x":272,"y":158},{"time":12403,"x":271,"y":154},{"time":12423,"x":270,"y":153},{"time":12443,"x":270,"y":152},{"time":12487,"x":269,"y":151},{"time":12508,"x":268,"y":149},{"time":12532,"x":268,"y":148},{"time":12552,"x":267,"y":146},{"time":12573,"x":266,"y":145},{"time":12697,"x":265,"y":145},{"time":12718,"x":265,"y":144},{"time":12737,"x":265,"y":143}],"id":0,"type":"draw","col":16777010,"time":7700,"fx":268,"fy":144},{"childlist":[{"time":14445,"x":123,"y":309},{"time":14468,"x":127,"y":313},{"time":14489,"x":131,"y":315},{"time":14510,"x":135,"y":317},{"time":14534,"x":139,"y":318},{"time":14554,"x":143,"y":318},{"time":14574,"x":151,"y":319},{"time":14594,"x":155,"y":319},{"time":14614,"x":160,"y":320},{"time":14635,"x":167,"y":321},{"time":14655,"x":171,"y":321},{"time":14676,"x":178,"y":321},{"time":14700,"x":182,"y":321},{"time":14720,"x":185,"y":321},{"time":14740,"x":187,"y":321},{"time":14759,"x":193,"y":320},{"time":14780,"x":199,"y":318},{"time":14800,"x":203,"y":316},{"time":14821,"x":207,"y":314},{"time":14842,"x":212,"y":312},{"time":14868,"x":217,"y":310},{"time":14888,"x":221,"y":308},{"time":14907,"x":226,"y":305},{"time":14934,"x":230,"y":302},{"time":14954,"x":235,"y":299},{"time":14974,"x":238,"y":297},{"time":14994,"x":241,"y":296},{"time":15015,"x":244,"y":293},{"time":15035,"x":249,"y":290},{"time":15055,"x":250,"y":288},{"time":15076,"x":251,"y":287},{"time":15101,"x":253,"y":284},{"time":15121,"x":255,"y":282},{"time":15141,"x":257,"y":279},{"time":15161,"x":258,"y":277},{"time":15182,"x":259,"y":276},{"time":15202,"x":259,"y":275},{"time":15222,"x":260,"y":274},{"time":15261,"x":260,"y":273},{"time":15284,"x":260,"y":272},{"time":15304,"x":260,"y":271},{"time":15345,"x":260,"y":270},{"time":15601,"x":261,"y":271},{"time":15622,"x":262,"y":272},{"time":15641,"x":263,"y":273},{"time":15666,"x":264,"y":275},{"time":15687,"x":265,"y":276},{"time":15707,"x":265,"y":278},{"time":15727,"x":266,"y":279},{"time":15748,"x":267,"y":280},{"time":15769,"x":267,"y":282},{"time":15789,"x":267,"y":283},{"time":15809,"x":268,"y":284},{"time":15831,"x":268,"y":287},{"time":15850,"x":268,"y":288},{"time":15870,"x":269,"y":290},{"time":15890,"x":269,"y":291},{"time":15910,"x":270,"y":294},{"time":15934,"x":270,"y":298},{"time":15954,"x":270,"y":300},{"time":15974,"x":270,"y":303},{"time":15994,"x":270,"y":304},{"time":16015,"x":269,"y":308},{"time":16035,"x":269,"y":310},{"time":16055,"x":269,"y":311},{"time":16076,"x":268,"y":313},{"time":16099,"x":266,"y":317},{"time":16120,"x":263,"y":322},{"time":16140,"x":261,"y":325},{"time":16168,"x":257,"y":331},{"time":16188,"x":253,"y":335},{"time":16207,"x":250,"y":338},{"time":16234,"x":245,"y":343},{"time":16253,"x":242,"y":346},{"time":16274,"x":237,"y":350},{"time":16294,"x":228,"y":357},{"time":16316,"x":223,"y":361},{"time":16336,"x":220,"y":363},{"time":16357,"x":216,"y":365},{"time":16377,"x":210,"y":366},{"time":16402,"x":204,"y":368},{"time":16422,"x":199,"y":370},{"time":16441,"x":196,"y":371},{"time":16473,"x":186,"y":372},{"time":16493,"x":182,"y":373},{"time":16514,"x":177,"y":373},{"time":16536,"x":174,"y":373},{"time":16555,"x":172,"y":373},{"time":16575,"x":169,"y":372},{"time":16601,"x":162,"y":370},{"time":16621,"x":160,"y":369},{"time":16641,"x":156,"y":367},{"time":16666,"x":154,"y":366},{"time":16686,"x":151,"y":365},{"time":16706,"x":149,"y":363},{"time":16725,"x":148,"y":363},{"time":16748,"x":147,"y":362},{"time":16769,"x":145,"y":361},{"time":16789,"x":143,"y":360},{"time":16809,"x":141,"y":358},{"time":16832,"x":138,"y":355},{"time":16852,"x":137,"y":354},{"time":16871,"x":136,"y":353},{"time":16891,"x":134,"y":352},{"time":16911,"x":132,"y":350},{"time":16934,"x":131,"y":348},{"time":16954,"x":130,"y":347},{"time":16974,"x":129,"y":346},{"time":16994,"x":128,"y":344},{"time":17015,"x":127,"y":342},{"time":17035,"x":126,"y":342},{"time":17055,"x":126,"y":341},{"time":17076,"x":125,"y":340},{"time":17101,"x":124,"y":338},{"time":17122,"x":123,"y":336},{"time":17142,"x":122,"y":335},{"time":17187,"x":122,"y":333},{"time":17208,"x":121,"y":333},{"time":17234,"x":120,"y":331},{"time":17253,"x":120,"y":330},{"time":17272,"x":120,"y":329},{"time":17292,"x":119,"y":328},{"time":17312,"x":119,"y":326},{"time":17334,"x":118,"y":325},{"time":17353,"x":118,"y":324},{"time":17374,"x":118,"y":323},{"time":17402,"x":118,"y":322},{"time":17422,"x":118,"y":320},{"time":17442,"x":118,"y":319},{"time":17468,"x":118,"y":318},{"time":17508,"x":118,"y":316},{"time":17531,"x":119,"y":315},{"time":17550,"x":119,"y":314},{"time":17755,"x":121,"y":312}],"id":0,"type":"draw","col":16777010,"time":14316,"fx":121,"fy":306},{"childlist":[{"time":19677,"x":57,"y":247},{"time":19722,"x":56,"y":247},{"time":19743,"x":55,"y":248},{"time":19769,"x":55,"y":249},{"time":19789,"x":54,"y":250},{"time":19808,"x":54,"y":251},{"time":19835,"x":54,"y":252},{"time":19854,"x":54,"y":253},{"time":19874,"x":55,"y":254},{"time":19894,"x":57,"y":256},{"time":19915,"x":58,"y":257},{"time":19935,"x":59,"y":257},{"time":19956,"x":60,"y":257},{"time":19976,"x":61,"y":257},{"time":20002,"x":63,"y":257},{"time":20022,"x":64,"y":257},{"time":20042,"x":65,"y":257},{"time":20068,"x":66,"y":256},{"time":20088,"x":66,"y":254},{"time":20107,"x":67,"y":253},{"time":20127,"x":67,"y":252},{"time":20149,"x":67,"y":251},{"time":20170,"x":67,"y":250},{"time":20191,"x":67,"y":249},{"time":20211,"x":66,"y":249},{"time":20234,"x":66,"y":248},{"time":20253,"x":65,"y":248},{"time":20272,"x":63,"y":247},{"time":20292,"x":62,"y":247},{"time":20312,"x":61,"y":247},{"time":20356,"x":60,"y":247}],"id":0,"type":"draw","col":16777010,"time":19659,"fx":58,"fy":247},{"childlist":[{"time":20860,"x":83,"y":270},{"time":20903,"x":82,"y":270},{"time":20924,"x":81,"y":271},{"time":20945,"x":80,"y":273},{"time":20970,"x":80,"y":275},{"time":20990,"x":81,"y":276},{"time":21010,"x":83,"y":278},{"time":21032,"x":87,"y":278},{"time":21052,"x":90,"y":278},{"time":21072,"x":92,"y":278},{"time":21094,"x":93,"y":278},{"time":21116,"x":94,"y":277},{"time":21156,"x":95,"y":274},{"time":21177,"x":95,"y":273},{"time":21200,"x":95,"y":272},{"time":21221,"x":95,"y":271},{"time":21261,"x":94,"y":270},{"time":21282,"x":91,"y":269},{"time":21302,"x":87,"y":268},{"time":21323,"x":84,"y":268}],"id":0,"type":"draw","col":16777010,"time":20839,"fx":84,"fy":270},{"childlist":[{"time":21893,"x":119,"y":270},{"time":21915,"x":117,"y":271},{"time":21936,"x":115,"y":272},{"time":21958,"x":114,"y":273},{"time":21979,"x":114,"y":274},{"time":22002,"x":114,"y":275},{"time":22023,"x":115,"y":278},{"time":22043,"x":116,"y":279},{"time":22068,"x":117,"y":280},{"time":22089,"x":118,"y":280},{"time":22110,"x":121,"y":281},{"time":22132,"x":122,"y":281},{"time":22153,"x":124,"y":281},{"time":22174,"x":125,"y":281},{"time":22241,"x":126,"y":280},{"time":22260,"x":127,"y":280},{"time":22282,"x":127,"y":278},{"time":22303,"x":127,"y":277},{"time":22324,"x":127,"y":276},{"time":22344,"x":127,"y":274},{"time":22368,"x":124,"y":269},{"time":22388,"x":124,"y":268},{"time":22408,"x":122,"y":267},{"time":22432,"x":120,"y":267},{"time":22452,"x":117,"y":266},{"time":22471,"x":116,"y":266},{"time":22491,"x":114,"y":266},{"time":22511,"x":112,"y":266}],"id":0,"type":"draw","col":16777010,"time":21851,"fx":120,"fy":269},{"time":23408,"type":"clear"},{"childlist":[{"time":25140,"x":152,"y":242},{"time":25156,"x":151,"y":242},{"time":25189,"x":150,"y":242},{"time":25207,"x":145,"y":242},{"time":25229,"x":137,"y":242},{"time":25260,"x":128,"y":238},{"time":25290,"x":124,"y":233},{"time":25318,"x":121,"y":227},{"time":25346,"x":120,"y":219},{"time":25372,"x":120,"y":215},{"time":25396,"x":120,"y":211},{"time":25421,"x":120,"y":209},{"time":25444,"x":120,"y":208},{"time":25467,"x":122,"y":201},{"time":25489,"x":123,"y":199},{"time":25511,"x":126,"y":195},{"time":25531,"x":128,"y":191},{"time":25552,"x":132,"y":187},{"time":25573,"x":135,"y":184},{"time":25593,"x":141,"y":179},{"time":25615,"x":143,"y":177},{"time":25634,"x":147,"y":175},{"time":25654,"x":152,"y":174},{"time":25674,"x":155,"y":173},{"time":25693,"x":160,"y":173},{"time":25713,"x":162,"y":173},{"time":25731,"x":166,"y":173},{"time":25750,"x":169,"y":173},{"time":25768,"x":172,"y":175},{"time":25787,"x":176,"y":176},{"time":25806,"x":180,"y":179},{"time":25824,"x":182,"y":181},{"time":25844,"x":186,"y":184},{"time":25864,"x":188,"y":186},{"time":25885,"x":190,"y":188},{"time":25906,"x":193,"y":192},{"time":25926,"x":194,"y":195},{"time":25948,"x":195,"y":196},{"time":25969,"x":196,"y":199},{"time":25990,"x":196,"y":200},{"time":26011,"x":196,"y":202},{"time":26031,"x":196,"y":204},{"time":26053,"x":196,"y":206},{"time":26074,"x":196,"y":208},{"time":26097,"x":195,"y":211},{"time":26118,"x":192,"y":214},{"time":26139,"x":191,"y":216},{"time":26159,"x":190,"y":218},{"time":26181,"x":189,"y":219},{"time":26202,"x":185,"y":222},{"time":26222,"x":181,"y":226},{"time":26242,"x":179,"y":229},{"time":26263,"x":178,"y":229},{"time":26283,"x":176,"y":231},{"time":26304,"x":171,"y":234},{"time":26325,"x":167,"y":236},{"time":26346,"x":160,"y":239},{"time":26367,"x":157,"y":240},{"time":26387,"x":155,"y":240},{"time":26409,"x":154,"y":240},{"time":26431,"x":151,"y":240},{"time":26452,"x":150,"y":240}],"id":0,"type":"draw","col":16777010,"time":25131,"fx":153,"fy":241},{"childlist":[{"time":27224,"x":318,"y":233},{"time":27245,"x":317,"y":232},{"time":27268,"x":312,"y":232},{"time":27289,"x":308,"y":231},{"time":27310,"x":299,"y":228},{"time":27330,"x":296,"y":227},{"time":27350,"x":291,"y":224},{"time":27370,"x":287,"y":222},{"time":27391,"x":284,"y":219},{"time":27411,"x":280,"y":215},{"time":27433,"x":277,"y":209},{"time":27453,"x":275,"y":202},{"time":27475,"x":274,"y":198},{"time":27498,"x":274,"y":195},{"time":27519,"x":274,"y":191},{"time":27539,"x":274,"y":189},{"time":27560,"x":275,"y":186},{"time":27581,"x":277,"y":182},{"time":27601,"x":280,"y":178},{"time":27621,"x":283,"y":174},{"time":27643,"x":287,"y":171},{"time":27664,"x":290,"y":169},{"time":27684,"x":294,"y":167},{"time":27705,"x":296,"y":165},{"time":27725,"x":299,"y":164},{"time":27747,"x":302,"y":162},{"time":27769,"x":306,"y":160},{"time":27790,"x":310,"y":159},{"time":27811,"x":313,"y":158},{"time":27833,"x":315,"y":158},{"time":27854,"x":317,"y":158},{"time":27875,"x":320,"y":159},{"time":27900,"x":325,"y":162},{"time":27920,"x":329,"y":164},{"time":27940,"x":333,"y":168},{"time":27964,"x":337,"y":173},{"time":27985,"x":341,"y":178},{"time":28006,"x":343,"y":182},{"time":28026,"x":346,"y":186},{"time":28048,"x":346,"y":187},{"time":28070,"x":347,"y":190},{"time":28092,"x":348,"y":191},{"time":28113,"x":348,"y":193},{"time":28134,"x":348,"y":195},{"time":28154,"x":348,"y":198},{"time":28174,"x":347,"y":201},{"time":28197,"x":344,"y":206},{"time":28219,"x":341,"y":211},{"time":28240,"x":336,"y":215},{"time":28260,"x":327,"y":222},{"time":28282,"x":317,"y":229},{"time":28302,"x":314,"y":231},{"time":28322,"x":311,"y":232},{"time":28342,"x":309,"y":232}],"id":0,"type":"draw","col":16777010,"time":27171,"fx":319,"fy":233},{"childlist":[{"time":29559,"x":158,"y":281},{"time":29579,"x":164,"y":279},{"time":29601,"x":171,"y":276},{"time":29621,"x":174,"y":274},{"time":29642,"x":176,"y":271},{"time":29664,"x":177,"y":270},{"time":29685,"x":178,"y":269},{"time":30017,"x":178,"y":270},{"time":30038,"x":178,"y":271},{"time":30059,"x":178,"y":272},{"time":30080,"x":178,"y":273},{"time":30100,"x":179,"y":275},{"time":30122,"x":179,"y":277},{"time":30142,"x":181,"y":279},{"time":30166,"x":182,"y":283},{"time":30186,"x":185,"y":288},{"time":30206,"x":187,"y":291},{"time":30226,"x":189,"y":294},{"time":30248,"x":193,"y":297},{"time":30269,"x":195,"y":299},{"time":30290,"x":201,"y":303},{"time":30311,"x":203,"y":304},{"time":30333,"x":208,"y":307},{"time":30353,"x":212,"y":308},{"time":30373,"x":215,"y":309},{"time":30393,"x":218,"y":309},{"time":30415,"x":222,"y":310},{"time":30436,"x":226,"y":310},{"time":30457,"x":230,"y":310},{"time":30479,"x":238,"y":308},{"time":30499,"x":241,"y":307},{"time":30519,"x":245,"y":306},{"time":30540,"x":247,"y":306},{"time":30560,"x":248,"y":305},{"time":30582,"x":251,"y":304},{"time":30602,"x":256,"y":302},{"time":30622,"x":260,"y":300},{"time":30642,"x":262,"y":299},{"time":30664,"x":265,"y":298},{"time":30685,"x":267,"y":297},{"time":30705,"x":271,"y":294},{"time":30726,"x":275,"y":292},{"time":30748,"x":277,"y":291},{"time":30769,"x":279,"y":290},{"time":30789,"x":280,"y":289},{"time":30810,"x":283,"y":285},{"time":30830,"x":285,"y":284},{"time":30851,"x":286,"y":282},{"time":30872,"x":287,"y":281},{"time":30892,"x":288,"y":280},{"time":30914,"x":290,"y":274},{"time":30935,"x":291,"y":273},{"time":30955,"x":292,"y":271},{"time":30977,"x":292,"y":270},{"time":31018,"x":293,"y":268},{"time":31039,"x":293,"y":267},{"time":31100,"x":293,"y":265},{"time":31121,"x":294,"y":263},{"time":31378,"x":294,"y":264},{"time":31400,"x":297,"y":267},{"time":31420,"x":298,"y":268},{"time":31441,"x":299,"y":269},{"time":31465,"x":301,"y":269},{"time":31485,"x":302,"y":270},{"time":31507,"x":303,"y":270},{"time":31530,"x":305,"y":270},{"time":31550,"x":306,"y":270},{"time":31570,"x":308,"y":270},{"time":31590,"x":309,"y":270},{"time":31611,"x":310,"y":270},{"time":31633,"x":311,"y":270},{"time":31673,"x":312,"y":270},{"time":31693,"x":313,"y":270},{"time":31735,"x":314,"y":269},{"time":32119,"x":314,"y":270},{"time":32140,"x":313,"y":270},{"time":32159,"x":313,"y":272},{"time":32183,"x":312,"y":273},{"time":32203,"x":312,"y":274},{"time":32223,"x":312,"y":275},{"time":32243,"x":311,"y":276},{"time":32266,"x":311,"y":277},{"time":32286,"x":310,"y":279},{"time":32306,"x":309,"y":282},{"time":32325,"x":308,"y":284},{"time":32346,"x":307,"y":289},{"time":32367,"x":305,"y":294},{"time":32388,"x":304,"y":297},{"time":32409,"x":304,"y":300},{"time":32431,"x":303,"y":303},{"time":32450,"x":303,"y":306},{"time":32471,"x":302,"y":308},{"time":32491,"x":302,"y":311},{"time":32512,"x":302,"y":312},{"time":32532,"x":301,"y":314},{"time":32552,"x":301,"y":317},{"time":32572,"x":300,"y":323},{"time":32592,"x":300,"y":325},{"time":32613,"x":299,"y":329},{"time":32633,"x":299,"y":331},{"time":32654,"x":299,"y":334},{"time":32674,"x":299,"y":338},{"time":32697,"x":299,"y":343},{"time":32717,"x":299,"y":348},{"time":32737,"x":299,"y":351},{"time":32757,"x":299,"y":353},{"time":32778,"x":299,"y":354},{"time":32800,"x":299,"y":355},{"time":32820,"x":300,"y":358},{"time":32840,"x":300,"y":361},{"time":32864,"x":300,"y":365},{"time":32885,"x":300,"y":367},{"time":32905,"x":300,"y":368},{"time":32925,"x":300,"y":370},{"time":32946,"x":300,"y":372},{"time":32966,"x":300,"y":373},{"time":32986,"x":301,"y":375},{"time":33006,"x":301,"y":377},{"time":33026,"x":301,"y":380},{"time":33047,"x":301,"y":382},{"time":33067,"x":301,"y":383},{"time":33340,"x":301,"y":384},{"time":33361,"x":301,"y":386},{"time":33382,"x":301,"y":388},{"time":33402,"x":301,"y":389},{"time":33422,"x":301,"y":390},{"time":33443,"x":301,"y":391},{"time":33465,"x":301,"y":392},{"time":33486,"x":301,"y":393},{"time":33506,"x":302,"y":395},{"time":33526,"x":302,"y":396},{"time":33549,"x":302,"y":398},{"time":33569,"x":303,"y":401},{"time":33590,"x":304,"y":401},{"time":33610,"x":304,"y":402},{"time":33633,"x":304,"y":403},{"time":33653,"x":305,"y":406},{"time":33673,"x":306,"y":407},{"time":33701,"x":307,"y":408},{"time":33722,"x":307,"y":409},{"time":33742,"x":308,"y":410},{"time":33765,"x":309,"y":411},{"time":33869,"x":309,"y":412},{"time":33911,"x":310,"y":412},{"time":34054,"x":308,"y":412},{"time":34075,"x":303,"y":412},{"time":34101,"x":297,"y":411},{"time":34121,"x":291,"y":410},{"time":34141,"x":285,"y":409},{"time":34165,"x":281,"y":408},{"time":34186,"x":275,"y":406},{"time":34206,"x":269,"y":403},{"time":34226,"x":263,"y":401},{"time":34248,"x":260,"y":400},{"time":34268,"x":254,"y":398},{"time":34288,"x":247,"y":397},{"time":34309,"x":239,"y":397},{"time":34334,"x":232,"y":397},{"time":34354,"x":225,"y":397},{"time":34375,"x":221,"y":397},{"time":34400,"x":215,"y":397},{"time":34419,"x":212,"y":398},{"time":34439,"x":206,"y":399},{"time":34459,"x":201,"y":401},{"time":34481,"x":198,"y":402},{"time":34502,"x":194,"y":404},{"time":34522,"x":188,"y":407},{"time":34542,"x":184,"y":409},{"time":34565,"x":183,"y":410},{"time":34585,"x":181,"y":411},{"time":34606,"x":180,"y":412},{"time":34626,"x":179,"y":412},{"time":34649,"x":178,"y":413},{"time":34669,"x":177,"y":414},{"time":34690,"x":176,"y":414},{"time":34710,"x":176,"y":415},{"time":34734,"x":175,"y":415},{"time":34968,"x":175,"y":411},{"time":34988,"x":176,"y":405},{"time":35009,"x":176,"y":401},{"time":35034,"x":176,"y":393},{"time":35053,"x":176,"y":386},{"time":35072,"x":177,"y":381},{"time":35092,"x":178,"y":373},{"time":35113,"x":178,"y":366},{"time":35134,"x":178,"y":362},{"time":35154,"x":177,"y":356},{"time":35174,"x":176,"y":351},{"time":35201,"x":176,"y":347},{"time":35220,"x":174,"y":341},{"time":35240,"x":173,"y":337},{"time":35259,"x":172,"y":334},{"time":35281,"x":171,"y":330},{"time":35302,"x":171,"y":329},{"time":35322,"x":170,"y":326},{"time":35342,"x":169,"y":321},{"time":35368,"x":168,"y":316},{"time":35389,"x":166,"y":311},{"time":35409,"x":165,"y":307},{"time":35434,"x":164,"y":305},{"time":35453,"x":164,"y":304},{"time":35473,"x":163,"y":302},{"time":35492,"x":163,"y":300},{"time":35514,"x":162,"y":298},{"time":35535,"x":161,"y":297},{"time":35555,"x":161,"y":296},{"time":35576,"x":161,"y":294},{"time":35598,"x":160,"y":293},{"time":35618,"x":159,"y":292},{"time":35639,"x":159,"y":291},{"time":35659,"x":158,"y":290},{"time":35681,"x":158,"y":289},{"time":35701,"x":157,"y":288},{"time":35721,"x":156,"y":287},{"time":35741,"x":156,"y":286},{"time":35789,"x":155,"y":285},{"time":35809,"x":155,"y":284},{"time":35873,"x":154,"y":283},{"time":36168,"x":154,"y":282}],"id":0,"type":"draw","col":16777010,"time":29427,"fx":156,"fy":282}]';
var comList:Array = JSON.decode(comListString);
_player.setCommandList(comList);
musicStart();
_ch.stop();
}
private function musicStart():void {
sound = new Sound(new URLRequest("http://swimmingbird.heteml.jp/wonderfl/sounds/stars.mp3"), new SoundLoaderContext(10000, true));
// sound = new Sound(new URLRequest("http://swimmingbird.heteml.jp/wonderfl/sounds/stars_long.mp3"), new SoundLoaderContext(10000, true));
_ch = sound.play();
bA = new ByteArray();
// stage.quality = StageQuality.LOW;
stage.fullScreenSourceRect=new Rectangle(0,0,465,465);
addEventListener(Event.ENTER_FRAME, updateSpectrum);
//timer start
_startTime = getTimer();
/**
* action setup
*/
_field.addEventListener(MouseEvent.MOUSE_DOWN, _fieldDownHandler);
_field.addEventListener(MouseEvent.MOUSE_UP, _fieldUpHandler);
_field.addEventListener(Event.ENTER_FRAME, _enterFrameHandler);
//Play Draw
_player.addEventListener(DrawPlayer.DO_ROOT, _rootEventHandler);
_player.addEventListener(DrawPlayer.DO_NODE, _nodeEventHandler);
_player.addEventListener(DrawPlayer.DO_CLEAR, _clearEventHandler);
}
public function setupDisplay():void {
addChild(_paintField);
addChild(_field);
addChild(_clearEffBmp);
addChild(_uiField);
addChild(_stopUiField);
addChild(_startField);
_uiField.addChild(_colSelector);
_colSelector.x = 20;
_colSelector.y = 85;
_stopUiField.visible = true;
_uiField.visible = false;
_startField.visible = false;
}
/**
* mouse Action
*/
private function _fieldDownHandler(event:MouseEvent):void {
addRoot();
_col = _colSelector.currentColor;
_field.addEventListener(MouseEvent.MOUSE_MOVE, _fieldMoveHandler);
var currentTime:int = getTimer() - _startTime;
var id:int=0;
_rec.startLineRec(id,mouseX,mouseY,_colSelector.currentColor,currentTime);
}
private function _fieldUpHandler(event:MouseEvent):void {
//今書いたものにベクトル情報追加
_field.removeEventListener(MouseEvent.MOUSE_MOVE, _fieldMoveHandler);
}
private function _fieldMoveHandler(event:MouseEvent):void {
addNode(_field.mouseX, _field.mouseY);
//rec
var currentTime:int = getTimer() - _startTime;
_rec.addPoint(_field.mouseX, _field.mouseY, currentTime);
}
/**
* play Action
*/
private function _rootEventHandler(event:Event):void {
addRoot();
_col = _player.cur_Col;
}
private function _nodeEventHandler(event:Event):void {
addNode(_player.cur_x, _player.cur_y);
}
private function _clearEventHandler(event:Event):void {
clear();
}
/**
* node Action
*/
private function addRoot():void {
trace("adRoot");
_currentListIndex = _pointListList.length;
_pointListList.push(new Array());
}
private function addNode(px:Number, py:Number):void {
trace("addNode");
var _list:Array = _pointListList[_currentListIndex];
_list.push(new LinePoint(px, py));
var i:int = _list.length-1;
_list[i].color = _col;
if(_list[i-1]) {
var _pt:LinePoint = _list[i];
var _dx:Number = _list[i].x - _list[i-1].x;
var _dy:Number = _list[i].y - _list[i-1].y;
var _distance:Number = Math.sqrt(_dx*_dx+_dy*_dy);
_pt.vx = _list[i].x - _list[i-1].x;
_pt.vy = _list[i].y - _list[i-1].y;
// _pt.vx = _dx/_distance;
// _pt.vy = _dy/_distance;
_pt.genRotation();
}
}
private function _enterFrameHandler(event:Event):void {
var i:int;
var len:int = _pointListList.length;
_paintField.graphics.clear();
_paintField.graphics.lineStyle(1,0xFFFFFF);
var _list:Array;
var j:int;
var _listlen:int;
var nx:Number;
var ny:Number;
var dist:Number;
if(_actionFlg) {
for(i=0; i<len; i++) {
_list = _pointListList[i];
_listlen = _list.length;
if(_listlen>0) {
_paintField.graphics.lineStyle(1,_list[0].color);
_paintField.graphics.moveTo(_list[0].x, _list[0].y);
//スペクトラムずらす
for(j=_listlen-1;j>0;j--) {
_list[j].spectrum = _list[j-1].spectrum;
}
_list[0].spectrum = spectrum[10];
for(j=0;j<_listlen;j++) {
// _paintField.graphics.moveTo(_list[j].x, _list[j].y);
if(_list[j].r){
nx = -(_list[j].vy);
ny = _list[j].vx;
dist = Math.sqrt(nx*nx+ny*ny);
// _list[j].spectrum = spectrum[j];//スペクトラム直でまっぴんぐ
_paintField.graphics.lineTo(_list[j].x+nx*_list[j].spectrum*7, _list[j].y+ny*_list[j].spectrum*7);
// _paintField.graphics.lineTo(_list[j].x+_list[j].spectrum*2*nx/dist, _list[j].y+40*_list[j].spectrum*2*ny/dist);
}
}
}
}
} else {
for(i=0; i<len; i++) {
_list = _pointListList[i];
_listlen = _list.length;
if(_listlen>0) {
_paintField.graphics.moveTo(_list[0].x, _list[0].y);
for(j=0;j<_listlen;j++) {
_paintField.graphics.lineTo(_list[j].x, _list[j].y);
}
}
}
}
}
private function updateSpectrum(e:Event):void {
SoundMixer.computeSpectrum(bA,false,0);
spectrum = [];
var i:int;
for(i=0; i<256; i++){
spectrum[i] = bA.readFloat();
}
for(i=256; i<512; i++){
spectrum[i] = bA.readFloat();
}
bA.position=0;
lowVal = spectrum[0];
middleVal = spectrum[1];
highVal = spectrum[2];
}
/**
* ui Action
*/
private function startHandler(event:MouseEvent):void {
_startField.visible = false;
_uiField.visible = true;
musicStart();
}
private function actionHandler(event:MouseEvent):void {
_actionFlg = true;
}
private function noActionHandler(event:MouseEvent):void {
_actionFlg = false;
}
private function clearHandler(event:MouseEvent):void {
_rec.addClear(getTimer()-_startTime)
clear();
}
private function plotHandler(event:MouseEvent):void {
_rec.outPut();
}
private function stopHandler(event:MouseEvent):void {
_ch.stop();
clear();
_player.setCommandList(_rec.commandList);
Tweener.addTween(_uiField, {_autoAlpha:0, time:0.5, transition:Equations.easeOutQuint});
Tweener.addTween(_stopUiField, {_autoAlpha:1, time:0.5, transition:Equations.easeOutQuint});
}
private function playDataHandler(event:MouseEvent):void {
_ch = sound.play(0);
_player.playStart();
}
private function stopDrawHandler(event:MouseEvent):void {
clear();
_currentListIndex = 0;
_ch.stop();
_player.playStop();
}
public var clearCnt:Number = 0;
private function clear():void {
_clearBmd.fillRect(new Rectangle(0,0,465,465),0);
_clearBmd.draw(_paintField);
_clearEffBmp.visible = true;
_clearEffBmp.alpha = 1;
_clearEffBmp.scaleX = _clearEffBmp.scaleY = 1;
Tweener.addTween(_clearEffBmp, {/*scaleX:2, scaleY:2, */_autoAlpha:0, time:1, transition:Equations.easeOutQuint});
clearComp();
// var i:int;
// var len:int = _pointListList.length;
// var _list:Array;
// var _listlen:int;
// var j:int;
// var nx:int, ny:int;
// for(i=0; i<len; i++) {
// _list = _pointListList[i];
// _listlen = _list.length;
// for(j=0;j<_listlen;j++) {
// _list[j].endAction();
// }
// }
// Tweener.addTween(this, {clearCnt:10, time:0.8, transition:Equations.easeOutQuint, onComplete:clearComp});
}
private function clearComp():void {
var i:int;
var len:int = _pointListList.length;
var _list:Array;
var _listlen:int;
var j:int;
var nx:int, ny:int;
for(i=0; i<len; i++) {
_list = _pointListList[i];
_listlen = _list.length;
for(j=0;j<_listlen;j++) {
_list[j] = null;
}
}
for(i=0; i<len; i++) {
_list = _pointListList[i];
_list.length = 0;
_list = null;
}
_pointListList.length = 0;
_pointListList = new Array();
}
}
}
import caurina.transitions.Equations;
import caurina.transitions.Tweener;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.TimerEvent;
import flash.external.ExternalInterface;
import flash.geom.Point;
import flash.utils.Timer;
import flash.utils.getTimer;
import org.osmf.events.TimeEvent;
class LinePoint extends Point {
public var vx:Number, vy:Number, r:Number;
public var spectrum:Number = 0;
public var color:Number;
public function LinePoint(x:Number=0, y:Number=0) {
super(x,y);
}
public function genRotation():void {
r = Math.atan2(vy, vx);
}
public function endAction():void {
var _targetSp:Number = spectrum * 20;
Tweener.addTween(this, {spectrum:_targetSp, time:0.5, transition:Equations.easeOutQuint});
}
}
class ColorSelector extends Sprite {
public var colorList:Array = new Array();
public var currentColor:Number = 0xFFFF32;
private var _colTotal:int = 5;
private var _selectedColor:Sprite = new Sprite();
public function ColorSelector() {
init();
setupDisplay();
}
public function init():void {
var i:int;
for(i=0; i<_colTotal; i++) {
var block:Sprite = new Sprite();
// block.name = String(0xFF0000*Math.random());
block.addEventListener(MouseEvent.CLICK, selectedHandler);
colorList.push(block);
}
colorList[0].name = String(0xFFFF32);
colorList[1].name = String(0xFFFF99);
colorList[2].name = String(0xFFFFCD);
colorList[3].name = String(0xFFCC32);
colorList[4].name = String(0xFFCC00);
for(i=0; i<_colTotal; i++) {
colorList[i].graphics.clear();
colorList[i].graphics.beginFill(Number(colorList[i].name));
colorList[i].graphics.drawRect(0,0,10,10);
colorList[i].graphics.endFill();
}
currentColor = Number(colorList[0].name);
_selectedColor.graphics.beginFill(currentColor);
_selectedColor.graphics.drawRect(0,0,19,19);
_selectedColor.graphics.endFill();
}
public function setupDisplay():void {
addChild(_selectedColor);
for(var i:int=0; i<_colTotal; i++) {
addChild(colorList[i]);
colorList[i].x = i*(colorList[i].width+1);
colorList[i].y = 20;
}
}
private function selectedHandler(event:MouseEvent):void {
_selectedColor.graphics.clear();
currentColor = Number(event.target.name);
_selectedColor.graphics.beginFill(currentColor);
_selectedColor.graphics.drawRect(0,0,19,19);
_selectedColor.graphics.endFill();
}
}
class DrawPlayer extends Sprite {
public static const DO_ROOT:String = "DoRoot";
public static const DO_NODE:String = "DoNode";
public static const DO_CLEAR:String = "DoClear";
private var _commandList:Array;
private var _timer:Timer = new Timer(1);
private var _rootIndex:int = 0;
private var _nodeIndex:int = 0;
private var _counter:int = 0;
private var _watchTarget:int = 0; //0:親, 1:子
//現在の命令
public var cur_Command:int = 0; //0:親, 1:子
public var cur_Col:Number;
public var cur_x:Number;
public var cur_y:Number;
//timer
private var _startTime:Number;
public function DrawPlayer() {
super();
}
public function setCommandList(list:Array):void {
_commandList = list;
}
public function playStart():void {
_counter = 0;
_rootIndex = 0;
_nodeIndex = 0;
_watchTarget = 0;
_startTime = getTimer();
addEventListener(Event.ENTER_FRAME, _commandCheckHandler);
}
public function playStop():void {
removeEventListener(Event.ENTER_FRAME, _commandCheckHandler);
}
private function _commandCheckHandler(event:Event):void {
_counter = getTimer()-_startTime;
//まだ終わってなかったら終わる
if(_rootIndex == _commandList.length) {
if(hasEventListener(Event.ENTER_FRAME))removeEventListener(Event.ENTER_FRAME, _commandCheckHandler);
return;
}
if(_watchTarget==0) {
if(_commandList[_rootIndex].time<=_counter) {
switch(_commandList[_rootIndex].type) {
case "clear":
_watchTarget = 0;
dispatchEvent(new Event(DO_CLEAR));
_rootIndex++;
break;
case "draw":
cur_Col = _commandList[_rootIndex].col;
cur_x = _commandList[_rootIndex].fx;
cur_y = _commandList[_rootIndex].fy;
dispatchEvent(new Event(DO_ROOT));
_watchTarget = 1;
break;
}
}
} else {
var obj:Object = _commandList[_rootIndex][_nodeIndex];
//マウス動かなかった時は親にそのまま向ける
if(!_commandList[_rootIndex].childlist[_nodeIndex]){
_rootIndex++;
_nodeIndex=0;
_watchTarget=0;
return;
}
if(_commandList[_rootIndex].childlist[_nodeIndex].time<=_counter) {
cur_x = _commandList[_rootIndex].childlist[_nodeIndex].x;
cur_y = _commandList[_rootIndex].childlist[_nodeIndex].y;
dispatchEvent(new Event(DO_NODE));
_nodeIndex++;
//最後尾到達で親監視に切り替え
if(_nodeIndex==_commandList[_rootIndex].length-1) {
//親も最後尾なら終了
if(_rootIndex==_commandList.length-1) {
_timer.removeEventListener(TimerEvent.TIMER, _commandCheckHandler);
_timer.stop();
return;
} else {
_watchTarget = 0;
_rootIndex++;
}
}
}
}
}
private function _commandCheck():void{
}
}
class DrawRecoder extends Sprite {
private var _commandList:Array = new Array();
public function get commandList():Array {
return _commandList;
}
public function DrawRecoder() {
}
public function startLineRec(_id:int,_mx:Number,_my:Number,_col:Number, _time:Number):void {
_commandList.push({type:"draw", id:_id,fx:_mx, fy:_my, col:_col, time:_time, childlist:new Array()});
}
public function addPoint(_mx:Number, _my:Number, _time:Number):void {
var _currentList:Array = _commandList[_commandList.length-1].childlist;
_currentList.push({x:_mx, y:_my, time:_time});
}
public function addClear(_time:Number):void {
_commandList.push({type:"clear", time:_time});
}
public function endLineRec():void {
}
public function outPut():void {
var i:int;
var j:int;
}
}