forked from: forked from: forked from: flash on 2013-3-1
forked from forked from: forked from: flash on 2013-3-1 (diff: 49)
♥0 |
Line 132 |
Modified 2013-03-01 14:24:35 |
MIT License
archived:2017-03-20 14:04:55
| (replaced)
ActionScript3 source code
/**
* Copyright ohisama ( http://wonderfl.net/user/ohisama )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/jIP6
*/
// forked from ohisama's forked from: forked from: flash on 2013-3-1
// forked from ohisama's forked from: flash on 2013-3-1
// forked from ohisama's flash on 2013-3-1
package
{
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.system.*;
import flash.utils.*;
import com.codeazur.as3swf.*;
import com.codeazur.as3swf.data.*;
import com.codeazur.as3swf.tags.*;
import com.bit101.components.*;
public class FlashTest extends Sprite
{
private static const CODE : String =
"use namespace 'flash.display';\n" +
"use namespace 'flash.text';\n" +
"class Movie extends Sprite\n" +
"{\n" +
" public function Movie()\n" +
" {\n" +
" var mg : Array = new Array();\n" +
" var n : int;\n" +
" var j : int;\n" +
" var i : int;\n" +
" var k : int;\n" +
" n = 3;\n" +
" for (i = 0; i <= n; i++)\n" +
" {\n" +
" mg[i] = new Array(); \n" +
" }\n" +
" j = (n + 1) / 2;\n" +
" i = 1;\n" +
" mg[i][j] = 1;\n" +
" for (k = 2; k <= n * n; k++)\n" +
" {\n" +
" if (k % n == 1) \n" +
" {\n" +
" i++; \n" +
" }\n" +
" else if (i == 1) \n" +
" {\n" +
" i = n;\n" +
" j++;\n" +
" }\n" +
" else if (j == n)\n" +
" {\n" +
" i--;\n" +
" j = 1;\n" +
" }\n" +
" else\n" +
" {\n" +
" i--;\n" +
" j++;\n" +
" }\n" +
" mg[i][j] = k;\n" +
" }\n" +
" var r : String = '';\n" +
" for (i = 1; i <= n; i++)\n" +
" {\n" +
" for (j = 1; j <= n; j++)\n" +
" {\n" +
" r += mg[i][j] + ' '\n" +
" }\n" +
" r += String.fromCharCode(13);\n" +
" }\n" +
" var t : TextField = new TextField();\n" +
" t.text = r;\n" +
" t.autoSize = TextFieldAutoSize.LEFT;\n" +
" t.wordWrap = true;\n" +
" t.width = 150;\n" +
" addChild(t);\n" +
" }\n" +
"}";
private var compileStringToBytes : Function;
private var code : Text;
private var swf : SWF;
private var movie : Loader;
private var data : SWFData;
public function FlashTest()
{
code = new Text(this, 5, 5, CODE);
code.width = 250;
code.height = 450;
addChild(code);
new PushButton(this, 260, 340, 'make swf', compile);
movie = new Loader();
movie.x = 260;
movie.y = 10;
addChild(movie);
var ul : URLLoader = new URLLoader;
ul.dataFormat = URLLoaderDataFormat.BINARY;
ul.addEventListener(Event.COMPLETE, loadESC);
ul.load(new URLRequest("http://assets.wonderfl.net/images/related_images/3/3d/3d72/3d721c692ee6ca816bac3cb996e82a2329c725a2"));
}
private function loadESC(e : Event) : void
{
var ul : URLLoader = e.target as URLLoader;
ul.removeEventListener(Event.COMPLETE, loadESC);
var data : ByteArray = new ByteArray;
data.writeBytes(ul.data, 42, ul.data.length - 42);
var l : Loader = new Loader();
l.contentLoaderInfo.addEventListener(Event.COMPLETE, completeESC);
l.loadBytes(data, new LoaderContext(false, ApplicationDomain.currentDomain));
}
private function completeESC(e : Event) : void
{
compileStringToBytes = ApplicationDomain.currentDomain.getDefinition('ESC.compileStringToBytes') as Function;
}
private function compile(e : MouseEvent) : void
{
swf = new SWF();
swf.version = 9;
swf.frameSize.xmax = 1000;
swf.frameSize.ymax = 1000;
swf.frameRate = 30;
swf.compressed = false;
swf.tags.push(new TagFileAttributes());
swf.tags.push(null);
var tsc : TagSymbolClass = new TagSymbolClass();
tsc.symbols.push(SWFSymbol.create(0, 'Movie'));
swf.tags.push(tsc);
swf.tags.push(new TagShowFrame());
swf.tags.push(new TagEnd());
var abc : ByteArray = compileStringToBytes(code.text, 'Movie.as');
swf.tags[1] = TagDoABC.create(abc, '', false);
data = new SWFData();
swf.publish(data);
movie.unloadAndStop();
movie.loadBytes(data);
}
}
}