feat.USSY forked from: LivePaintwithSound
forked from LivePaintwithSound (diff: 9)
曲は夢幻のオルゴール工房さんにて配布されている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/xt3s
*/
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 = '[{"col":16777113,"id":0,"fx":331,"fy":210,"time":5307,"childlist":[{"time":5355,"x":330,"y":210},{"time":5373,"x":327,"y":210},{"time":5390,"x":325,"y":210},{"time":5408,"x":320,"y":210},{"time":5428,"x":318,"y":212},{"time":5445,"x":317,"y":212},{"time":5463,"x":316,"y":212},{"time":5480,"x":315,"y":212},{"time":5498,"x":314,"y":212},{"time":5515,"x":313,"y":212},{"time":5533,"x":312,"y":213},{"time":5584,"x":311,"y":213},{"time":5602,"x":310,"y":213},{"time":5620,"x":308,"y":213},{"time":5638,"x":303,"y":216},{"time":5655,"x":301,"y":217},{"time":5674,"x":296,"y":217},{"time":5692,"x":294,"y":217},{"time":5709,"x":292,"y":217},{"time":5728,"x":291,"y":217},{"time":5746,"x":290,"y":217},{"time":5764,"x":289,"y":217},{"time":5799,"x":288,"y":217},{"time":5817,"x":287,"y":217},{"time":5835,"x":286,"y":217},{"time":5853,"x":283,"y":218},{"time":5888,"x":282,"y":218},{"time":5906,"x":281,"y":218},{"time":5941,"x":280,"y":218},{"time":5977,"x":278,"y":218},{"time":5995,"x":278,"y":217},{"time":6047,"x":276,"y":217},{"time":6064,"x":275,"y":217},{"time":6081,"x":275,"y":215},{"time":6116,"x":273,"y":215},{"time":6133,"x":273,"y":214},{"time":6168,"x":271,"y":214},{"time":6185,"x":270,"y":213},{"time":6204,"x":270,"y":212},{"time":6221,"x":269,"y":212},{"time":6257,"x":268,"y":211},{"time":6275,"x":267,"y":211},{"time":6295,"x":267,"y":210},{"time":6312,"x":265,"y":210},{"time":6347,"x":264,"y":208},{"time":6381,"x":263,"y":208},{"time":6398,"x":263,"y":207},{"time":6451,"x":262,"y":206},{"time":6469,"x":261,"y":205},{"time":6503,"x":260,"y":204},{"time":6556,"x":260,"y":203},{"time":6573,"x":259,"y":202},{"time":6591,"x":259,"y":201},{"time":6629,"x":259,"y":200},{"time":6647,"x":259,"y":199},{"time":6682,"x":259,"y":198},{"time":6717,"x":258,"y":198},{"time":6734,"x":258,"y":195},{"time":6752,"x":258,"y":193},{"time":6770,"x":257,"y":191},{"time":6787,"x":257,"y":189},{"time":6804,"x":257,"y":188},{"time":6821,"x":257,"y":187},{"time":6838,"x":257,"y":185},{"time":6855,"x":257,"y":184},{"time":6873,"x":257,"y":181},{"time":6891,"x":257,"y":178},{"time":6909,"x":257,"y":176},{"time":6929,"x":257,"y":175},{"time":6947,"x":257,"y":174},{"time":6981,"x":257,"y":173},{"time":7015,"x":258,"y":171},{"time":7032,"x":258,"y":170},{"time":7050,"x":258,"y":169},{"time":7067,"x":258,"y":168},{"time":7084,"x":258,"y":167},{"time":7102,"x":260,"y":167},{"time":7138,"x":260,"y":166},{"time":7156,"x":260,"y":165},{"time":7174,"x":260,"y":163},{"time":7191,"x":262,"y":160},{"time":7209,"x":262,"y":159},{"time":7228,"x":263,"y":157},{"time":7246,"x":263,"y":156},{"time":7264,"x":264,"y":155},{"time":7282,"x":264,"y":153},{"time":7299,"x":265,"y":149},{"time":7334,"x":266,"y":147},{"time":7352,"x":268,"y":145},{"time":7370,"x":268,"y":144},{"time":7387,"x":269,"y":143},{"time":7405,"x":271,"y":141},{"time":7422,"x":271,"y":140},{"time":7477,"x":272,"y":139},{"time":7495,"x":273,"y":138},{"time":7530,"x":274,"y":138},{"time":7564,"x":275,"y":137},{"time":7582,"x":277,"y":135},{"time":7600,"x":279,"y":135},{"time":7617,"x":280,"y":134},{"time":7635,"x":282,"y":133},{"time":7652,"x":283,"y":132},{"time":7688,"x":285,"y":132},{"time":7723,"x":287,"y":131},{"time":7740,"x":287,"y":130},{"time":7758,"x":289,"y":130},{"time":7777,"x":290,"y":130},{"time":7795,"x":291,"y":129},{"time":7812,"x":293,"y":128},{"time":7829,"x":295,"y":127},{"time":7847,"x":298,"y":126},{"time":7882,"x":299,"y":125},{"time":7900,"x":300,"y":125},{"time":7918,"x":301,"y":124},{"time":7952,"x":302,"y":124},{"time":7971,"x":304,"y":124},{"time":7989,"x":307,"y":122},{"time":8006,"x":311,"y":120},{"time":8043,"x":312,"y":120},{"time":8062,"x":315,"y":119},{"time":8081,"x":318,"y":118},{"time":8099,"x":320,"y":117},{"time":8116,"x":321,"y":116},{"time":8133,"x":322,"y":116},{"time":8169,"x":323,"y":116},{"time":8187,"x":324,"y":116},{"time":8205,"x":324,"y":115},{"time":8223,"x":325,"y":115},{"time":8241,"x":326,"y":115},{"time":8259,"x":327,"y":115},{"time":8278,"x":328,"y":115},{"time":8296,"x":329,"y":115},{"time":8314,"x":330,"y":115},{"time":8332,"x":331,"y":115},{"time":8350,"x":333,"y":113},{"time":8368,"x":335,"y":113},{"time":8402,"x":336,"y":113},{"time":8420,"x":337,"y":113},{"time":8437,"x":339,"y":113},{"time":8455,"x":341,"y":113},{"time":8473,"x":343,"y":113},{"time":8491,"x":349,"y":113},{"time":8508,"x":352,"y":113},{"time":8525,"x":353,"y":113},{"time":8582,"x":355,"y":113},{"time":8600,"x":356,"y":113},{"time":8635,"x":357,"y":113},{"time":8670,"x":359,"y":113},{"time":8688,"x":360,"y":113},{"time":8723,"x":361,"y":113},{"time":8743,"x":363,"y":113},{"time":8781,"x":364,"y":113},{"time":8798,"x":365,"y":113},{"time":8816,"x":368,"y":113},{"time":8833,"x":372,"y":114},{"time":8850,"x":375,"y":114},{"time":8867,"x":377,"y":115},{"time":8885,"x":379,"y":115},{"time":8903,"x":380,"y":116},{"time":8921,"x":381,"y":116},{"time":8938,"x":382,"y":116},{"time":9009,"x":383,"y":116},{"time":9149,"x":384,"y":117},{"time":9184,"x":385,"y":117},{"time":9201,"x":385,"y":118},{"time":9236,"x":387,"y":119},{"time":9254,"x":388,"y":119},{"time":9272,"x":388,"y":120},{"time":9290,"x":390,"y":121},{"time":9307,"x":392,"y":122},{"time":9325,"x":393,"y":123},{"time":9344,"x":394,"y":123},{"time":9362,"x":395,"y":124},{"time":9380,"x":398,"y":127},{"time":9414,"x":400,"y":130},{"time":9449,"x":401,"y":130},{"time":9486,"x":402,"y":131},{"time":9504,"x":403,"y":132},{"time":9521,"x":403,"y":133},{"time":9540,"x":404,"y":133},{"time":9558,"x":404,"y":134},{"time":9577,"x":404,"y":135},{"time":9595,"x":405,"y":135},{"time":9614,"x":408,"y":137},{"time":9649,"x":411,"y":144},{"time":9666,"x":413,"y":148},{"time":9683,"x":414,"y":150},{"time":9701,"x":414,"y":151},{"time":9718,"x":415,"y":154},{"time":9735,"x":416,"y":155},{"time":9752,"x":416,"y":157},{"time":9770,"x":416,"y":158},{"time":9788,"x":417,"y":159},{"time":9805,"x":417,"y":161},{"time":9822,"x":418,"y":164},{"time":9839,"x":419,"y":166},{"time":9857,"x":419,"y":168},{"time":9876,"x":419,"y":169},{"time":9899,"x":419,"y":170},{"time":9916,"x":420,"y":174},{"time":9933,"x":420,"y":175},{"time":9968,"x":420,"y":176},{"time":10021,"x":420,"y":177},{"time":10038,"x":421,"y":177},{"time":10055,"x":421,"y":179},{"time":10091,"x":421,"y":180},{"time":10110,"x":422,"y":181},{"time":10128,"x":422,"y":182},{"time":10145,"x":422,"y":184},{"time":10163,"x":422,"y":185},{"time":10203,"x":422,"y":186},{"time":10238,"x":422,"y":187},{"time":10256,"x":422,"y":189},{"time":10291,"x":422,"y":191},{"time":10309,"x":422,"y":192},{"time":10328,"x":422,"y":193},{"time":10363,"x":423,"y":195},{"time":10381,"x":423,"y":196},{"time":10403,"x":423,"y":197},{"time":10420,"x":423,"y":198},{"time":10438,"x":423,"y":200},{"time":10455,"x":423,"y":201},{"time":10472,"x":423,"y":202},{"time":10490,"x":423,"y":203},{"time":10509,"x":423,"y":205},{"time":10530,"x":423,"y":206},{"time":10547,"x":423,"y":208},{"time":10564,"x":423,"y":209},{"time":10581,"x":422,"y":209},{"time":10603,"x":421,"y":211},{"time":10619,"x":419,"y":212},{"time":10653,"x":419,"y":214},{"time":10670,"x":418,"y":214},{"time":10703,"x":417,"y":216},{"time":10720,"x":416,"y":216},{"time":10738,"x":415,"y":217},{"time":10755,"x":414,"y":217},{"time":10791,"x":413,"y":220},{"time":10809,"x":408,"y":222},{"time":10827,"x":406,"y":223},{"time":10845,"x":405,"y":224},{"time":10863,"x":404,"y":225},{"time":10904,"x":402,"y":226},{"time":10922,"x":401,"y":226},{"time":10956,"x":398,"y":227},{"time":10974,"x":397,"y":227},{"time":11011,"x":394,"y":228},{"time":11028,"x":393,"y":228},{"time":11046,"x":392,"y":229},{"time":11064,"x":391,"y":229},{"time":11081,"x":390,"y":229},{"time":11106,"x":388,"y":229},{"time":11122,"x":384,"y":230},{"time":11154,"x":383,"y":230},{"time":11171,"x":383,"y":231},{"time":11189,"x":382,"y":231},{"time":11207,"x":379,"y":231},{"time":11228,"x":378,"y":231},{"time":11244,"x":376,"y":233},{"time":11279,"x":373,"y":233},{"time":11709,"x":341,"y":225},{"time":11710,"x":340,"y":225},{"time":11777,"x":339,"y":224},{"time":11854,"x":338,"y":223},{"time":11887,"x":338,"y":222},{"time":11918,"x":337,"y":221},{"time":11944,"x":335,"y":221},{"time":11968,"x":335,"y":220},{"time":12014,"x":334,"y":219},{"time":12051,"x":334,"y":218},{"time":12084,"x":332,"y":218},{"time":12100,"x":332,"y":217},{"time":12114,"x":331,"y":217},{"time":12142,"x":331,"y":216},{"time":12166,"x":330,"y":215},{"time":12177,"x":330,"y":214},{"time":12189,"x":329,"y":214},{"time":12214,"x":329,"y":213},{"time":12281,"x":328,"y":213},{"time":12318,"x":328,"y":212}],"type":"draw"},{"col":16777113,"id":0,"fx":307,"fy":183,"time":13545,"childlist":[{"time":13583,"x":306,"y":183},{"time":13652,"x":305,"y":183},{"time":13688,"x":304,"y":183},{"time":13742,"x":303,"y":183},{"time":13780,"x":303,"y":182},{"time":13797,"x":302,"y":182},{"time":13832,"x":302,"y":181},{"time":13849,"x":301,"y":181},{"time":13885,"x":301,"y":180},{"time":13902,"x":301,"y":178},{"time":13919,"x":301,"y":176},{"time":13936,"x":301,"y":174},{"time":13954,"x":301,"y":172},{"time":13972,"x":301,"y":171},{"time":13990,"x":301,"y":170},{"time":14009,"x":301,"y":169},{"time":14029,"x":301,"y":168},{"time":14063,"x":301,"y":167},{"time":14115,"x":301,"y":165},{"time":14133,"x":301,"y":164},{"time":14168,"x":301,"y":163},{"time":14186,"x":301,"y":162},{"time":14204,"x":302,"y":161},{"time":14221,"x":302,"y":159},{"time":14238,"x":302,"y":157},{"time":14255,"x":303,"y":156},{"time":14290,"x":304,"y":154},{"time":14310,"x":304,"y":153},{"time":14346,"x":304,"y":152},{"time":14364,"x":305,"y":152},{"time":14399,"x":305,"y":151},{"time":14416,"x":306,"y":149},{"time":14433,"x":307,"y":149},{"time":14456,"x":307,"y":148},{"time":14474,"x":308,"y":148},{"time":14495,"x":309,"y":146},{"time":14513,"x":309,"y":145},{"time":14547,"x":311,"y":145},{"time":14582,"x":312,"y":145},{"time":14600,"x":312,"y":143},{"time":14617,"x":313,"y":143},{"time":14652,"x":315,"y":143},{"time":14705,"x":316,"y":143},{"time":14775,"x":317,"y":143},{"time":14797,"x":318,"y":143},{"time":14831,"x":319,"y":143},{"time":14866,"x":321,"y":144},{"time":14884,"x":321,"y":145},{"time":14901,"x":322,"y":145},{"time":14936,"x":322,"y":147},{"time":14970,"x":323,"y":148},{"time":15005,"x":323,"y":149},{"time":15023,"x":323,"y":150},{"time":15043,"x":323,"y":152},{"time":15078,"x":323,"y":154},{"time":15096,"x":323,"y":155},{"time":15131,"x":323,"y":156},{"time":15165,"x":323,"y":157},{"time":15235,"x":323,"y":158},{"time":15286,"x":323,"y":159},{"time":15303,"x":323,"y":160},{"time":15320,"x":323,"y":161},{"time":15338,"x":323,"y":162},{"time":15373,"x":323,"y":163},{"time":15390,"x":323,"y":164},{"time":15410,"x":323,"y":165},{"time":15447,"x":323,"y":166},{"time":15465,"x":323,"y":167},{"time":15483,"x":323,"y":168},{"time":15518,"x":323,"y":169},{"time":15554,"x":323,"y":170},{"time":15588,"x":323,"y":171},{"time":15642,"x":323,"y":172},{"time":15679,"x":323,"y":173},{"time":15696,"x":322,"y":174},{"time":15731,"x":321,"y":175},{"time":15750,"x":321,"y":176},{"time":15768,"x":319,"y":176},{"time":15802,"x":318,"y":177},{"time":15867,"x":316,"y":179},{"time":15885,"x":313,"y":181},{"time":15917,"x":311,"y":182},{"time":15935,"x":311,"y":184},{"time":15971,"x":310,"y":184},{"time":16041,"x":309,"y":184},{"time":16061,"x":309,"y":185},{"time":16130,"x":308,"y":185},{"time":16216,"x":307,"y":185},{"time":16337,"x":306,"y":185}],"type":"draw"},{"col":16777113,"id":0,"fx":356,"fy":193,"time":17336,"childlist":[{"time":17446,"x":355,"y":193},{"time":17498,"x":354,"y":193},{"time":17586,"x":353,"y":193},{"time":17604,"x":353,"y":192},{"time":17658,"x":353,"y":191},{"time":17678,"x":352,"y":191},{"time":17714,"x":352,"y":190},{"time":17731,"x":352,"y":189},{"time":17767,"x":352,"y":188},{"time":17785,"x":351,"y":188},{"time":17803,"x":351,"y":186},{"time":17837,"x":351,"y":183},{"time":17862,"x":351,"y":182},{"time":17880,"x":351,"y":181},{"time":17900,"x":351,"y":180},{"time":17918,"x":351,"y":179},{"time":17970,"x":351,"y":177},{"time":18004,"x":351,"y":176},{"time":18022,"x":351,"y":173},{"time":18062,"x":351,"y":172},{"time":18097,"x":351,"y":171},{"time":18115,"x":351,"y":169},{"time":18133,"x":352,"y":168},{"time":18150,"x":352,"y":167},{"time":18167,"x":352,"y":166},{"time":18185,"x":353,"y":165},{"time":18219,"x":353,"y":164},{"time":18236,"x":353,"y":163},{"time":18255,"x":353,"y":162},{"time":18290,"x":353,"y":161},{"time":18309,"x":354,"y":161},{"time":18328,"x":354,"y":159},{"time":18364,"x":354,"y":158},{"time":18381,"x":355,"y":158},{"time":18416,"x":356,"y":156},{"time":18434,"x":357,"y":155},{"time":18452,"x":357,"y":154},{"time":18486,"x":358,"y":154},{"time":18504,"x":358,"y":153},{"time":18522,"x":359,"y":153},{"time":18539,"x":360,"y":152},{"time":18557,"x":361,"y":151},{"time":18613,"x":362,"y":151},{"time":18630,"x":363,"y":151},{"time":18668,"x":364,"y":151},{"time":18686,"x":365,"y":151},{"time":18720,"x":366,"y":151},{"time":18776,"x":367,"y":151},{"time":18813,"x":369,"y":151},{"time":18830,"x":370,"y":151},{"time":18868,"x":370,"y":152},{"time":18902,"x":371,"y":153},{"time":18936,"x":371,"y":154},{"time":18972,"x":371,"y":155},{"time":18989,"x":371,"y":156},{"time":19028,"x":371,"y":157},{"time":19045,"x":371,"y":158},{"time":19081,"x":371,"y":159},{"time":19115,"x":371,"y":160},{"time":19133,"x":371,"y":161},{"time":19151,"x":371,"y":163},{"time":19170,"x":371,"y":164},{"time":19187,"x":373,"y":165},{"time":19241,"x":373,"y":166},{"time":19263,"x":373,"y":167},{"time":19280,"x":373,"y":168},{"time":19312,"x":373,"y":169},{"time":19329,"x":373,"y":170},{"time":19346,"x":373,"y":171},{"time":19364,"x":373,"y":172},{"time":19381,"x":373,"y":173},{"time":19416,"x":373,"y":174},{"time":19434,"x":373,"y":175},{"time":19452,"x":373,"y":176},{"time":19469,"x":373,"y":177},{"time":19488,"x":373,"y":178},{"time":19505,"x":373,"y":179},{"time":19523,"x":373,"y":180},{"time":19579,"x":372,"y":182},{"time":19597,"x":371,"y":183},{"time":19614,"x":371,"y":184},{"time":19632,"x":370,"y":185},{"time":19668,"x":369,"y":186},{"time":19702,"x":368,"y":187},{"time":19736,"x":367,"y":188},{"time":19788,"x":367,"y":189},{"time":19805,"x":366,"y":189},{"time":19865,"x":366,"y":190},{"time":19935,"x":365,"y":190},{"time":19988,"x":364,"y":190},{"time":20006,"x":364,"y":192},{"time":20043,"x":363,"y":192},{"time":20079,"x":362,"y":192},{"time":20113,"x":362,"y":193},{"time":20183,"x":360,"y":193},{"time":20201,"x":359,"y":193},{"time":20271,"x":358,"y":193},{"time":20309,"x":357,"y":193},{"time":20380,"x":356,"y":193}],"type":"draw"},{"col":16777113,"id":0,"fx":264,"fy":215,"time":21848,"childlist":[{"time":21921,"x":263,"y":215},{"time":21940,"x":262,"y":215},{"time":21981,"x":261,"y":215},{"time":22014,"x":260,"y":214},{"time":22030,"x":259,"y":214},{"time":22064,"x":257,"y":214},{"time":22083,"x":256,"y":214},{"time":22100,"x":253,"y":213},{"time":22117,"x":252,"y":213},{"time":22135,"x":251,"y":213},{"time":22152,"x":250,"y":213},{"time":22187,"x":249,"y":213},{"time":22222,"x":248,"y":212},{"time":22242,"x":247,"y":212},{"time":22268,"x":246,"y":212},{"time":22304,"x":245,"y":212},{"time":22322,"x":244,"y":212},{"time":22341,"x":241,"y":212},{"time":22362,"x":240,"y":212},{"time":22397,"x":239,"y":212},{"time":22432,"x":237,"y":212},{"time":22468,"x":236,"y":212},{"time":22520,"x":235,"y":212},{"time":22590,"x":234,"y":212},{"time":22608,"x":233,"y":212},{"time":22628,"x":232,"y":212},{"time":22645,"x":230,"y":212},{"time":22664,"x":229,"y":212},{"time":22682,"x":229,"y":214},{"time":22699,"x":228,"y":214},{"time":22734,"x":227,"y":214},{"time":22769,"x":227,"y":215},{"time":22820,"x":225,"y":216},{"time":22875,"x":224,"y":216},{"time":22894,"x":224,"y":217},{"time":22946,"x":223,"y":217},{"time":22963,"x":222,"y":218},{"time":22981,"x":222,"y":219},{"time":23016,"x":222,"y":220},{"time":23052,"x":221,"y":220},{"time":23141,"x":221,"y":221},{"time":23163,"x":221,"y":222},{"time":23202,"x":221,"y":223},{"time":23237,"x":221,"y":224},{"time":23272,"x":222,"y":224},{"time":23328,"x":223,"y":224},{"time":23345,"x":227,"y":225},{"time":23362,"x":228,"y":225},{"time":23379,"x":229,"y":225},{"time":23396,"x":230,"y":226},{"time":23413,"x":231,"y":226},{"time":23431,"x":239,"y":226},{"time":23449,"x":240,"y":226},{"time":23486,"x":241,"y":226},{"time":23504,"x":242,"y":226},{"time":23522,"x":244,"y":226},{"time":23542,"x":246,"y":226},{"time":23562,"x":247,"y":226},{"time":23580,"x":250,"y":226},{"time":23615,"x":252,"y":226},{"time":23650,"x":253,"y":226},{"time":23667,"x":254,"y":226},{"time":23718,"x":255,"y":226},{"time":23808,"x":256,"y":226},{"time":23897,"x":257,"y":226},{"time":23950,"x":258,"y":226},{"time":23967,"x":258,"y":227},{"time":23985,"x":259,"y":227},{"time":24019,"x":260,"y":227},{"time":24037,"x":261,"y":227},{"time":24054,"x":262,"y":227},{"time":24072,"x":263,"y":227},{"time":24094,"x":267,"y":227},{"time":24112,"x":271,"y":228},{"time":24147,"x":273,"y":228},{"time":24182,"x":274,"y":228},{"time":24364,"x":275,"y":229},{"time":24381,"x":275,"y":230},{"time":24418,"x":275,"y":231},{"time":24486,"x":275,"y":232},{"time":24521,"x":275,"y":233},{"time":24539,"x":275,"y":234},{"time":24581,"x":275,"y":235},{"time":24602,"x":273,"y":235},{"time":24620,"x":272,"y":236},{"time":24637,"x":272,"y":237},{"time":24671,"x":271,"y":237},{"time":24695,"x":271,"y":238},{"time":24729,"x":271,"y":239},{"time":24746,"x":271,"y":240},{"time":24764,"x":269,"y":240},{"time":24818,"x":269,"y":241},{"time":24869,"x":268,"y":242},{"time":24904,"x":268,"y":243},{"time":24938,"x":268,"y":244},{"time":24954,"x":267,"y":245},{"time":24989,"x":266,"y":246},{"time":25008,"x":266,"y":247},{"time":25028,"x":266,"y":248},{"time":25046,"x":265,"y":248},{"time":25063,"x":265,"y":249},{"time":25116,"x":265,"y":250},{"time":25134,"x":264,"y":250},{"time":25169,"x":264,"y":251},{"time":25205,"x":264,"y":252},{"time":25222,"x":263,"y":254},{"time":25241,"x":262,"y":256},{"time":25264,"x":262,"y":257},{"time":25318,"x":262,"y":258},{"time":25352,"x":262,"y":259},{"time":25404,"x":262,"y":260},{"time":25422,"x":262,"y":261},{"time":25442,"x":261,"y":262},{"time":25479,"x":261,"y":263},{"time":25513,"x":261,"y":265},{"time":25549,"x":260,"y":267},{"time":25583,"x":259,"y":267},{"time":25618,"x":259,"y":269},{"time":25636,"x":258,"y":269},{"time":25654,"x":258,"y":271},{"time":25689,"x":257,"y":273},{"time":25727,"x":255,"y":275},{"time":25744,"x":253,"y":277},{"time":25764,"x":251,"y":280},{"time":25782,"x":250,"y":281},{"time":25800,"x":249,"y":282},{"time":25836,"x":248,"y":283},{"time":25871,"x":247,"y":284},{"time":25889,"x":245,"y":286},{"time":25908,"x":244,"y":286},{"time":25929,"x":244,"y":288},{"time":25981,"x":243,"y":289},{"time":25999,"x":241,"y":290},{"time":26017,"x":240,"y":291},{"time":26034,"x":239,"y":292},{"time":26069,"x":238,"y":293},{"time":26106,"x":236,"y":295},{"time":26162,"x":236,"y":296},{"time":26179,"x":234,"y":297},{"time":26233,"x":233,"y":298},{"time":26251,"x":233,"y":299},{"time":26287,"x":232,"y":299},{"time":26305,"x":232,"y":300},{"time":26322,"x":231,"y":300},{"time":26343,"x":231,"y":301},{"time":26381,"x":231,"y":302},{"time":26398,"x":229,"y":302},{"time":26452,"x":229,"y":303},{"time":26470,"x":229,"y":304},{"time":26488,"x":229,"y":305},{"time":26505,"x":229,"y":306},{"time":26527,"x":229,"y":308},{"time":26544,"x":229,"y":309},{"time":26579,"x":229,"y":311},{"time":26632,"x":229,"y":312},{"time":26719,"x":229,"y":314},{"time":26828,"x":229,"y":315},{"time":26864,"x":230,"y":315},{"time":26899,"x":231,"y":315},{"time":26917,"x":232,"y":315},{"time":26935,"x":233,"y":315},{"time":26952,"x":234,"y":315},{"time":26970,"x":235,"y":315},{"time":26988,"x":238,"y":315},{"time":27007,"x":240,"y":315},{"time":27027,"x":242,"y":315},{"time":27045,"x":243,"y":315},{"time":27063,"x":245,"y":314},{"time":27080,"x":245,"y":312},{"time":27098,"x":248,"y":312},{"time":27134,"x":248,"y":311},{"time":27169,"x":250,"y":310},{"time":27187,"x":251,"y":310},{"time":27242,"x":253,"y":309},{"time":27261,"x":253,"y":307},{"time":27279,"x":254,"y":306},{"time":27367,"x":256,"y":305},{"time":27385,"x":257,"y":305},{"time":27436,"x":258,"y":304},{"time":27472,"x":260,"y":303},{"time":27511,"x":261,"y":303},{"time":27546,"x":262,"y":302},{"time":27598,"x":263,"y":302},{"time":27633,"x":264,"y":302},{"time":27650,"x":265,"y":302},{"time":27668,"x":268,"y":302},{"time":27704,"x":270,"y":302},{"time":27722,"x":271,"y":302},{"time":27741,"x":272,"y":302},{"time":27761,"x":273,"y":302},{"time":27779,"x":274,"y":302},{"time":27796,"x":275,"y":302},{"time":27830,"x":276,"y":302},{"time":27883,"x":277,"y":302},{"time":27901,"x":278,"y":302},{"time":27936,"x":279,"y":302},{"time":27954,"x":280,"y":302},{"time":27972,"x":281,"y":302},{"time":28010,"x":282,"y":302},{"time":28045,"x":283,"y":302},{"time":28064,"x":284,"y":302},{"time":28082,"x":285,"y":302},{"time":28117,"x":286,"y":302},{"time":28135,"x":288,"y":302},{"time":28153,"x":289,"y":302},{"time":28188,"x":290,"y":302},{"time":28234,"x":293,"y":302},{"time":28250,"x":294,"y":302},{"time":28284,"x":295,"y":302},{"time":28301,"x":298,"y":302},{"time":28317,"x":302,"y":302},{"time":28333,"x":303,"y":302},{"time":28369,"x":304,"y":302},{"time":28386,"x":305,"y":302},{"time":28404,"x":308,"y":302},{"time":28466,"x":309,"y":302},{"time":28499,"x":310,"y":302},{"time":28520,"x":311,"y":302},{"time":28537,"x":312,"y":302},{"time":28595,"x":313,"y":302}],"type":"draw"},{"col":16777113,"id":0,"fx":270,"fy":301,"time":29964,"childlist":[{"time":30086,"x":271,"y":301},{"time":30104,"x":283,"y":301},{"time":30122,"x":288,"y":301},{"time":30142,"x":294,"y":301},{"time":30178,"x":295,"y":301},{"time":30195,"x":296,"y":301},{"time":30212,"x":300,"y":301},{"time":30235,"x":303,"y":302},{"time":30252,"x":307,"y":302},{"time":30268,"x":309,"y":302},{"time":30286,"x":310,"y":302},{"time":30303,"x":311,"y":302},{"time":30320,"x":312,"y":303},{"time":30339,"x":316,"y":303},{"time":30356,"x":317,"y":303},{"time":30585,"x":318,"y":303},{"time":30620,"x":318,"y":304},{"time":30663,"x":318,"y":305},{"time":30716,"x":318,"y":306},{"time":30750,"x":319,"y":306},{"time":30785,"x":319,"y":307},{"time":30837,"x":320,"y":308},{"time":30855,"x":320,"y":309},{"time":30874,"x":323,"y":309},{"time":30912,"x":323,"y":311},{"time":30931,"x":324,"y":311},{"time":30948,"x":324,"y":312},{"time":30965,"x":325,"y":312},{"time":30982,"x":327,"y":314},{"time":31000,"x":329,"y":314},{"time":31017,"x":329,"y":315},{"time":31035,"x":330,"y":315},{"time":31052,"x":334,"y":317},{"time":31070,"x":336,"y":319},{"time":31087,"x":337,"y":319},{"time":31126,"x":340,"y":322},{"time":31144,"x":341,"y":323},{"time":31162,"x":342,"y":324},{"time":31196,"x":342,"y":325},{"time":31214,"x":344,"y":326},{"time":31231,"x":344,"y":327},{"time":31249,"x":345,"y":328},{"time":31284,"x":348,"y":331},{"time":31319,"x":349,"y":333},{"time":31336,"x":349,"y":335},{"time":31353,"x":349,"y":336},{"time":31370,"x":350,"y":336},{"time":31388,"x":350,"y":338},{"time":31430,"x":351,"y":339},{"time":31447,"x":351,"y":341},{"time":31512,"x":352,"y":342},{"time":31529,"x":352,"y":344},{"time":31547,"x":353,"y":347},{"time":31565,"x":353,"y":349},{"time":31582,"x":354,"y":349},{"time":31635,"x":354,"y":351},{"time":31669,"x":355,"y":351},{"time":31686,"x":355,"y":352},{"time":32116,"x":364,"y":345},{"time":32131,"x":364,"y":344},{"time":32166,"x":364,"y":343},{"time":32185,"x":364,"y":342},{"time":32204,"x":364,"y":341},{"time":32237,"x":364,"y":337},{"time":32279,"x":364,"y":335},{"time":32313,"x":364,"y":333},{"time":32345,"x":362,"y":330},{"time":32368,"x":360,"y":328},{"time":32413,"x":360,"y":327},{"time":32433,"x":360,"y":323},{"time":32450,"x":358,"y":321},{"time":32468,"x":358,"y":320},{"time":32500,"x":357,"y":317},{"time":32530,"x":356,"y":315},{"time":32545,"x":355,"y":312},{"time":32558,"x":354,"y":309},{"time":32570,"x":354,"y":308},{"time":32597,"x":354,"y":306},{"time":32612,"x":354,"y":305},{"time":32625,"x":354,"y":303},{"time":32644,"x":354,"y":301},{"time":32661,"x":354,"y":300},{"time":32678,"x":354,"y":294},{"time":32696,"x":354,"y":292},{"time":32713,"x":354,"y":290},{"time":32732,"x":354,"y":289},{"time":32752,"x":355,"y":284},{"time":32772,"x":356,"y":280},{"time":32794,"x":357,"y":278},{"time":32813,"x":357,"y":276},{"time":32833,"x":359,"y":274},{"time":32869,"x":359,"y":272},{"time":32904,"x":363,"y":267},{"time":32944,"x":364,"y":266},{"time":32962,"x":365,"y":266},{"time":32980,"x":365,"y":264},{"time":32997,"x":366,"y":264},{"time":33050,"x":368,"y":263},{"time":33084,"x":368,"y":261},{"time":33116,"x":370,"y":261},{"time":33133,"x":371,"y":261},{"time":33151,"x":372,"y":261},{"time":33185,"x":374,"y":260},{"time":33203,"x":375,"y":260},{"time":33239,"x":377,"y":260},{"time":33258,"x":379,"y":260},{"time":33278,"x":381,"y":260},{"time":33295,"x":382,"y":260},{"time":33337,"x":384,"y":260},{"time":33356,"x":386,"y":260},{"time":33380,"x":388,"y":260},{"time":33397,"x":390,"y":260},{"time":33414,"x":392,"y":260},{"time":33431,"x":396,"y":260},{"time":33448,"x":398,"y":260},{"time":33464,"x":399,"y":260},{"time":33480,"x":401,"y":260},{"time":33498,"x":404,"y":260},{"time":33516,"x":407,"y":260},{"time":33533,"x":410,"y":260},{"time":33553,"x":414,"y":260},{"time":33569,"x":422,"y":259},{"time":33586,"x":424,"y":259},{"time":33604,"x":425,"y":258},{"time":33625,"x":426,"y":258},{"time":33648,"x":427,"y":257},{"time":33666,"x":428,"y":257},{"time":33684,"x":428,"y":256},{"time":33754,"x":430,"y":256},{"time":33779,"x":430,"y":254},{"time":33832,"x":431,"y":253},{"time":33878,"x":431,"y":252},{"time":33929,"x":431,"y":251},{"time":33949,"x":431,"y":250},{"time":33966,"x":431,"y":249},{"time":33983,"x":431,"y":248},{"time":33999,"x":429,"y":248},{"time":34033,"x":429,"y":247},{"time":34068,"x":427,"y":247},{"time":34103,"x":426,"y":247},{"time":34137,"x":425,"y":247},{"time":34156,"x":424,"y":247},{"time":34176,"x":421,"y":247},{"time":34192,"x":419,"y":247},{"time":34213,"x":416,"y":247},{"time":34229,"x":415,"y":247},{"time":34252,"x":413,"y":247},{"time":34269,"x":410,"y":247},{"time":34285,"x":407,"y":247},{"time":34319,"x":406,"y":247},{"time":34336,"x":405,"y":247},{"time":34353,"x":403,"y":247},{"time":34369,"x":400,"y":246},{"time":34386,"x":398,"y":246},{"time":34403,"x":397,"y":246},{"time":34438,"x":396,"y":246},{"time":34457,"x":390,"y":244},{"time":34476,"x":389,"y":243},{"time":34493,"x":388,"y":243},{"time":34527,"x":387,"y":243},{"time":34562,"x":385,"y":242},{"time":34598,"x":384,"y":242},{"time":34633,"x":383,"y":242},{"time":34669,"x":382,"y":242},{"time":34686,"x":381,"y":242},{"time":34724,"x":380,"y":241},{"time":34762,"x":379,"y":241},{"time":34798,"x":378,"y":241},{"time":34832,"x":377,"y":241},{"time":34850,"x":376,"y":240}],"type":"draw"},{"col":16777113,"id":0,"fx":316,"fy":160,"time":36598,"childlist":[{"time":36664,"x":316,"y":161},{"time":36682,"x":316,"y":162},{"time":36716,"x":315,"y":163},{"time":36733,"x":315,"y":164},{"time":36750,"x":315,"y":165},{"time":36768,"x":314,"y":167},{"time":36785,"x":314,"y":169},{"time":36838,"x":314,"y":170},{"time":36858,"x":313,"y":171},{"time":36897,"x":313,"y":172},{"time":36914,"x":312,"y":172},{"time":37038,"x":311,"y":172},{"time":37078,"x":311,"y":171},{"time":37095,"x":310,"y":171},{"time":37114,"x":310,"y":169},{"time":37148,"x":310,"y":168},{"time":37183,"x":310,"y":167},{"time":37217,"x":310,"y":166},{"time":37252,"x":310,"y":164},{"time":37290,"x":310,"y":163},{"time":37329,"x":310,"y":162},{"time":37364,"x":311,"y":161},{"time":37382,"x":311,"y":160},{"time":37399,"x":313,"y":160},{"time":37451,"x":314,"y":160},{"time":37486,"x":315,"y":159},{"time":37538,"x":316,"y":159},{"time":37557,"x":317,"y":159},{"time":37631,"x":318,"y":159}],"type":"draw"},{"col":16777113,"id":0,"fx":360,"fy":171,"time":38327,"childlist":[{"time":38456,"x":359,"y":172},{"time":38486,"x":359,"y":175},{"time":38502,"x":358,"y":177},{"time":38518,"x":358,"y":179},{"time":38551,"x":358,"y":180},{"time":38569,"x":358,"y":181},{"time":38588,"x":358,"y":182},{"time":38683,"x":358,"y":183},{"time":38844,"x":359,"y":183},{"time":38861,"x":360,"y":182},{"time":38879,"x":360,"y":180},{"time":38915,"x":361,"y":179},{"time":39001,"x":361,"y":178},{"time":39052,"x":361,"y":177},{"time":39069,"x":361,"y":176},{"time":39088,"x":361,"y":175},{"time":39129,"x":361,"y":174},{"time":39161,"x":361,"y":173},{"time":39191,"x":361,"y":172},{"time":39258,"x":361,"y":171}],"type":"draw"}]';
//
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;
}
}