foomonger
January 30th, 2006, 04:49 PM
/*
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\nlineStyle 0 0x000000 100\nmoveTo 13 213.95\nlineTo 16 202.95\nlineTo 14 189.95\nlineTo 18 178.95\nlineTo 27 174.95\nlineTo 35 174.95\nlineTo 38 166.95\nlineTo 45 163.95\nlineTo 57 172.95\nlineTo 71 196.95\nlineTo 82 210.95\nlineTo 81 223.95\nlineTo 72 229.95\nlineTo 58 229.95\nlineTo 35 221.95\nlineTo 22 219.95\nlineTo 13 213.95\nmoveTo 148 166.95\nlineTo 142 166.95\nlineTo 140 174.95\nlineTo 141 185.95\nlineTo 137 206.95\nlineTo 134 221.95\nlineTo 144 228.95\nlineTo 155 230.95\nlineTo 165 223.95\nlineTo 179 214.95\nlineTo 192 206.95\nlineTo 199 203.95\nlineTo 199 197.95\nlineTo 192 191.95\nlineTo 185 184.95\nlineTo 183 181.95\nlineTo 183 173.95\nlineTo 179 168.95\nmoveTo 59 124\nlineTo 52 140\nlineTo 50 153\nlineTo 57 163.95\nlineTo 72 177.95\nlineTo 80 184.95\nlineTo 83 190.95\nlineTo 79 194.95\nlineTo 75 196.95\nmoveTo 150 115\nlineTo 160 126\nlineTo 163 142\nlineTo 158 155\nlineTo 154 159.95\nlineTo 152 169.95\nlineTo 157 176.95\nlineTo 165 178.95\nlineTo 173 173.95\nlineTo 175 166.95\nlineTo 175 161.95\nlineTo 171 159.95\nlineTo 165 158\nlineTo 160 157\n\nmoveTo 80 73\nlineTo 89 64\nlineTo 97 59\nlineTo 105 61\nlineTo 113 66\nlineTo 123 67\nlineTo 122 75\nlineTo 115 82\nlineTo 108 87\nlineTo 99 90\nlineTo 93 90\nlineTo 89 84\nlineTo 85 79\nlineTo 78 77\nlineTo 87 79\nlineTo 93 81\nlineTo 102 79\nlineTo 111 76\nlineTo 118 72\nmoveTo 38 159.95\nlineTo 40 145\nlineTo 46 137\nlineTo 49 127\nlineTo 51 117\nlineTo 59 107\nlineTo 68 96\nlineTo 75 83\nlineTo 73 42\nlineTo 77 21\nlineTo 92 9\nlineTo 113 9\nlineTo 131 20\nlineTo 141 38\nlineTo 143 60\nlineTo 144 73\nlineTo 152 92\nlineTo 163 104\nlineTo 170 114\nlineTo 176 132\nlineTo 179 152\nlineTo 179 165.95\nmoveTo 133 220.95\nlineTo 116 220.95\nlineTo 101 221.95\nlineTo 86 223.95\nmoveTo 82 82\nlineTo 81 89\nlineTo 75 98\nlineTo 72 108\nlineTo 70 117\nlineTo 59 134\nlineTo 57 154\nlineTo 57 160.95\nmoveTo 83 207.95\nlineTo 94 210.95\nlineTo 108 210.95\nlineTo 121 204.95\nlineTo 132 196.95\nlineTo 137 191.95\nmoveTo 147 164.95\nlineTo 148 144\nlineTo 148 131\nlineTo 144 122\nlineTo 135 111\nlineTo 131 94\nlineTo 123 80\nmoveTo 82 65\nlineTo 79 54\nlineTo 82 44\nlineTo 88 42\nlineTo 93 47\nlineTo 93 52\nlineTo 94 56\nmoveTo 103 56\nlineTo 103 47\nlineTo 111 41\nlineTo 120 44\nlineTo 124 51\nlineTo 124 60\nlineTo 121 65\nmoveTo 84 62\nlineTo 81 55\nlineTo 84 50\nlineTo 89 52\nlineTo 91 56\nlineTo 90 59\nmoveTo 110 61\nlineTo 109 52\nlineTo 113 48\nlineTo 119 52\nlineTo 120 56\nlineTo 120 60\nlineTo 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[i].split(" ");
this[a[0]].apply(this, a.slice(1));
updateAfterEvent();
(i < (cmd_array.length - 1)) ? i++ : clearInterval(cmdInterval);
}
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\nlineStyle 0 0x000000 100\nmoveTo 13 213.95\nlineTo 16 202.95\nlineTo 14 189.95\nlineTo 18 178.95\nlineTo 27 174.95\nlineTo 35 174.95\nlineTo 38 166.95\nlineTo 45 163.95\nlineTo 57 172.95\nlineTo 71 196.95\nlineTo 82 210.95\nlineTo 81 223.95\nlineTo 72 229.95\nlineTo 58 229.95\nlineTo 35 221.95\nlineTo 22 219.95\nlineTo 13 213.95\nmoveTo 148 166.95\nlineTo 142 166.95\nlineTo 140 174.95\nlineTo 141 185.95\nlineTo 137 206.95\nlineTo 134 221.95\nlineTo 144 228.95\nlineTo 155 230.95\nlineTo 165 223.95\nlineTo 179 214.95\nlineTo 192 206.95\nlineTo 199 203.95\nlineTo 199 197.95\nlineTo 192 191.95\nlineTo 185 184.95\nlineTo 183 181.95\nlineTo 183 173.95\nlineTo 179 168.95\nmoveTo 59 124\nlineTo 52 140\nlineTo 50 153\nlineTo 57 163.95\nlineTo 72 177.95\nlineTo 80 184.95\nlineTo 83 190.95\nlineTo 79 194.95\nlineTo 75 196.95\nmoveTo 150 115\nlineTo 160 126\nlineTo 163 142\nlineTo 158 155\nlineTo 154 159.95\nlineTo 152 169.95\nlineTo 157 176.95\nlineTo 165 178.95\nlineTo 173 173.95\nlineTo 175 166.95\nlineTo 175 161.95\nlineTo 171 159.95\nlineTo 165 158\nlineTo 160 157\n\nmoveTo 80 73\nlineTo 89 64\nlineTo 97 59\nlineTo 105 61\nlineTo 113 66\nlineTo 123 67\nlineTo 122 75\nlineTo 115 82\nlineTo 108 87\nlineTo 99 90\nlineTo 93 90\nlineTo 89 84\nlineTo 85 79\nlineTo 78 77\nlineTo 87 79\nlineTo 93 81\nlineTo 102 79\nlineTo 111 76\nlineTo 118 72\nmoveTo 38 159.95\nlineTo 40 145\nlineTo 46 137\nlineTo 49 127\nlineTo 51 117\nlineTo 59 107\nlineTo 68 96\nlineTo 75 83\nlineTo 73 42\nlineTo 77 21\nlineTo 92 9\nlineTo 113 9\nlineTo 131 20\nlineTo 141 38\nlineTo 143 60\nlineTo 144 73\nlineTo 152 92\nlineTo 163 104\nlineTo 170 114\nlineTo 176 132\nlineTo 179 152\nlineTo 179 165.95\nmoveTo 133 220.95\nlineTo 116 220.95\nlineTo 101 221.95\nlineTo 86 223.95\nmoveTo 82 82\nlineTo 81 89\nlineTo 75 98\nlineTo 72 108\nlineTo 70 117\nlineTo 59 134\nlineTo 57 154\nlineTo 57 160.95\nmoveTo 83 207.95\nlineTo 94 210.95\nlineTo 108 210.95\nlineTo 121 204.95\nlineTo 132 196.95\nlineTo 137 191.95\nmoveTo 147 164.95\nlineTo 148 144\nlineTo 148 131\nlineTo 144 122\nlineTo 135 111\nlineTo 131 94\nlineTo 123 80\nmoveTo 82 65\nlineTo 79 54\nlineTo 82 44\nlineTo 88 42\nlineTo 93 47\nlineTo 93 52\nlineTo 94 56\nmoveTo 103 56\nlineTo 103 47\nlineTo 111 41\nlineTo 120 44\nlineTo 124 51\nlineTo 124 60\nlineTo 121 65\nmoveTo 84 62\nlineTo 81 55\nlineTo 84 50\nlineTo 89 52\nlineTo 91 56\nlineTo 90 59\nmoveTo 110 61\nlineTo 109 52\nlineTo 113 48\nlineTo 119 52\nlineTo 120 56\nlineTo 120 60\nlineTo 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[i].split(" ");
this[a[0]].apply(this, a.slice(1));
updateAfterEvent();
(i < (cmd_array.length - 1)) ? i++ : clearInterval(cmdInterval);
}