/*
www.foomonger.com
Dynamic Movie Clip Execute
This parses the input and executes the functions. You can execute any movie clip function, but the drawing API ones are more rewarding.
*/
// init run button
this.createEmptyMovieClip("run_mc", 0);
this["run_mc"].createTextField("label_txt", 0, 300, 205, 50, 25);
this["run_mc"]["label_txt"].text = "Run";
this["run_mc"]["label_txt"].selectable = false;
this["run_mc"]["label_txt"].border = true;
this["run_mc"].onRelease = startCommands;
// init command input
this.createTextField("cmd_txt", 1, 300, 0, 200, 200);
this["cmd_txt"].type = "input";
this["cmd_txt"].border = true;
this["cmd_txt"].multiline = true;
// set example commands
this["cmd_txt"].text = "clear
lineStyle 0 0x000000 100
moveTo 13 213.95
lineTo 16 202.95
lineTo 14 189.95
lineTo 18 178.95
lineTo 27 174.95
lineTo 35 174.95
lineTo 38 166.95
lineTo 45 163.95
lineTo 57 172.95
lineTo 71 196.95
lineTo 82 210.95
lineTo 81 223.95
lineTo 72 229.95
lineTo 58 229.95
lineTo 35 221.95
lineTo 22 219.95
lineTo 13 213.95
moveTo 148 166.95
lineTo 142 166.95
lineTo 140 174.95
lineTo 141 185.95
lineTo 137 206.95
lineTo 134 221.95
lineTo 144 228.95
lineTo 155 230.95
lineTo 165 223.95
lineTo 179 214.95
lineTo 192 206.95
lineTo 199 203.95
lineTo 199 197.95
lineTo 192 191.95
lineTo 185 184.95
lineTo 183 181.95
lineTo 183 173.95
lineTo 179 168.95
moveTo 59 124
lineTo 52 140
lineTo 50 153
lineTo 57 163.95
lineTo 72 177.95
lineTo 80 184.95
lineTo 83 190.95
lineTo 79 194.95
lineTo 75 196.95
moveTo 150 115
lineTo 160 126
lineTo 163 142
lineTo 158 155
lineTo 154 159.95
lineTo 152 169.95
lineTo 157 176.95
lineTo 165 178.95
lineTo 173 173.95
lineTo 175 166.95
lineTo 175 161.95
lineTo 171 159.95
lineTo 165 158
lineTo 160 157
moveTo 80 73
lineTo 89 64
lineTo 97 59
lineTo 105 61
lineTo 113 66
lineTo 123 67
lineTo 122 75
lineTo 115 82
lineTo 108 87
lineTo 99 90
lineTo 93 90
lineTo 89 84
lineTo 85 79
lineTo 78 77
lineTo 87 79
lineTo 93 81
lineTo 102 79
lineTo 111 76
lineTo 118 72
moveTo 38 159.95
lineTo 40 145
lineTo 46 137
lineTo 49 127
lineTo 51 117
lineTo 59 107
lineTo 68 96
lineTo 75 83
lineTo 73 42
lineTo 77 21
lineTo 92 9
lineTo 113 9
lineTo 131 20
lineTo 141 38
lineTo 143 60
lineTo 144 73
lineTo 152 92
lineTo 163 104
lineTo 170 114
lineTo 176 132
lineTo 179 152
lineTo 179 165.95
moveTo 133 220.95
lineTo 116 220.95
lineTo 101 221.95
lineTo 86 223.95
moveTo 82 82
lineTo 81 89
lineTo 75 98
lineTo 72 108
lineTo 70 117
lineTo 59 134
lineTo 57 154
lineTo 57 160.95
moveTo 83 207.95
lineTo 94 210.95
lineTo 108 210.95
lineTo 121 204.95
lineTo 132 196.95
lineTo 137 191.95
moveTo 147 164.95
lineTo 148 144
lineTo 148 131
lineTo 144 122
lineTo 135 111
lineTo 131 94
lineTo 123 80
moveTo 82 65
lineTo 79 54
lineTo 82 44
lineTo 88 42
lineTo 93 47
lineTo 93 52
lineTo 94 56
moveTo 103 56
lineTo 103 47
lineTo 111 41
lineTo 120 44
lineTo 124 51
lineTo 124 60
lineTo 121 65
moveTo 84 62
lineTo 81 55
lineTo 84 50
lineTo 89 52
lineTo 91 56
lineTo 90 59
moveTo 110 61
lineTo 109 52
lineTo 113 48
lineTo 119 52
lineTo 120 56
lineTo 120 60
lineTo 116 63";
var cmd_array:Array;
var cmdInterval:Number;
var i:Number = 0;
// parses the command string and starts the interval
function startCommands():Void {
i = 0;
_root.cmd_array = _root["cmd_txt"].text.split(String.fromCharCode(13));
_root.cmdInterval = setInterval(_root, "runCommands", 50);
}
// parses the function name and args and executes
function runCommands():Void {
var a:Array = cmd_array*.split(" ");
this[a[0]].apply(this, a.slice(1));
updateAfterEvent();
(i < (cmd_array.length - 1)) ? i++ : clearInterval(cmdInterval);
}