In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

Javascript in ActionScript

wonderfl throws "security error #2060"
* please see http://swf.wonderfl.net/swf/usercode/a/a5/a5f3/a5f3004f642cef37044d6564859cccaef2bf6152.swf
* 
* 
* JSAdd()
* 
* <script>タグに埋め込む内容をinputAreaに入力し、JSADD()ボタンを押すと
* htmlの<head>要素の<script>タグにその内容を追加します。
* .jsファイルの中身なんかを入れるといいと思います。
* -- sample --
* var a = 0;
* function usagi()
* {
*     a++
*     alert(a);
* }
* -- --
* 
* 
* JSCall()
* 
* 実行するJavascriptを入力し、JSCall()ボタンを押すと、
* 入力されたJavascriptが実行されます。
* URL欄に打ち込む"javascript:function F(){~~}F()の~~みたいなものを入れるといいと思います。
* -- sample --
* alert("call sample");
* usagi();
* -- --
*
Get Adobe Flash player
by cpu_t 08 Jul 2010

    Talk

    cpu_t at 08 Jul 2010 21:20
    エラー投げるのでこっち見てください。 http://swf.wonderfl.net/swf/usercode/a/a5/a5f3/a5f3004f642cef37044d6564859cccaef2bf6152.swf GoogleChrome5.0.375.99で動作確認 FireFox3.5.30729で動かすとフリーズする IEはJSAdd()がうまくいかない
    Embed
/**
 * Copyright cpu_t ( http://wonderfl.net/user/cpu_t )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/nG3p
 */

/* wonderfl throws "security error #2060"
 * please see http://swf.wonderfl.net/swf/usercode/a/a5/a5f3/a5f3004f642cef37044d6564859cccaef2bf6152.swf
 * 
 * 
 * JSAdd()
 * 
 * <script>タグに埋め込む内容をinputAreaに入力し、JSADD()ボタンを押すと
 * htmlの<head>要素の<script>タグにその内容を追加します。
 * .jsファイルの中身なんかを入れるといいと思います。
 * -- sample --
 * var a = 0;
 * function usagi()
 * {
 *     a++
 *     alert(a);
 * }
 * -- --
 * 
 * 
 * JSCall()
 * 
 * 実行するJavascriptを入力し、JSCall()ボタンを押すと、
 * 入力されたJavascriptが実行されます。
 * URL欄に打ち込む"javascript:function F(){~~}F()の~~みたいなものを入れるといいと思います。
 * -- sample --
 * alert("call sample");
 * usagi();
 * -- --
 * 
 */
package {
    import flash.text.TextFormat;
    import flash.text.TextField;
    import flash.events.MouseEvent;
    import flash.external.ExternalInterface;
    import flash.display.Sprite;
    public class FlashTest extends Sprite
    {
        public function FlashTest()
        {
            // addChild(textField, buttons)
            createUI();
            try
            {
                ExternalInterface.call("function(){alert('lets start!');}");
            }
            catch(e:Error)
            {
                print(e.toString());
            }
        }
        private function JSCall(script:String):*
        {
            print("JSCall()\n");
            script="function(){"+script+"}";
            return ExternalInterface.call(script);
        }
        private function JSAdd(script:String):*
        {
            print("JSAdd\n");
            var appendScript:String=
            "function(script){\n"+
            "var element=document.createElement('script');\n"+
            "element.innerHTML=script;\n"+
            "var head=document.getElementsByTagName('head').item(0);\n"+
            "head.appendChild(element);\n"+
            "}";
            return ExternalInterface.call(appendScript,script);
        }
        private function callBtnHandler(e:MouseEvent):void
        {
            var script:String=tfIn.text;
            //print("callBtnHandler:\n"+script+"\n");
            var result:*=JSCall(script);
            print("result:"+result+"\n");
        }
        private function addBtnHandler(e:MouseEvent):void
        {
            var script:String=tfIn.text;
            //print("addBtnHandler\n"+script+"\n");
            var result:*=JSAdd(script);
            print("result:"+result+"\n");
        }
        
        
        
        private var tfOut:TextField;
        private var tfIn:TextField;
        private function print(msg:String):void
        {
            tfOut.appendText(msg);
        }
        private function createUI():void
        {
            tfOut=new TextField();
            tfOut.multiline=true;
            tfOut.width=stage.stageWidth/2;
            tfOut.height=stage.stageHeight-30;
            tfOut.y=30;
            tfOut.background=true;
            tfOut.backgroundColor=0xFFFFFF;
            tfOut.defaultTextFormat=new TextFormat("Arial",null,0x000000);
            addChild(tfOut);
            tfOut.text="<-outputArea : inputArea->\n";
            
            tfIn=new TextField();
            tfIn.type="input";
            tfIn.multiline=true;
            tfIn.wordWrap=true;
            tfIn.width=stage.stageWidth/2;
            tfIn.height=stage.stageHeight-30;
            tfIn.x=stage.stageWidth/2;
            tfIn.y=30;
            tfIn.background=true;
            tfIn.backgroundColor=0x000000;
            tfIn.defaultTextFormat=new TextFormat("Arial",null,0xC0C0C0);
            addChild(tfIn);
            
            var btnCall:Sprite=new Sprite();
            btnCall.graphics.lineStyle(1,0);
            btnCall.graphics.beginFill(0,0);
            btnCall.graphics.drawRect(0,0,60,30);
            btnCall.x=5;
            addChild(btnCall);
            var txCall:TextField=new TextField();
            txCall.defaultTextFormat=new TextFormat("Arial");
            txCall.text="JSCall()";
            txCall.autoSize="left";
            txCall.selectable=false;
            txCall.x=btnCall.width/2-txCall.width/2;
            txCall.y=btnCall.height/2-txCall.height/2;
            btnCall.addChild(txCall);
            btnCall.addEventListener(MouseEvent.MOUSE_DOWN,callBtnHandler);
            
            var btnAdd:Sprite=new Sprite();
            btnAdd.graphics.lineStyle(1,0);
            btnAdd.graphics.beginFill(0,0);
            btnAdd.graphics.drawRect(0,0,60,30);
            btnAdd.x=75;
            addChild(btnAdd);
            var txAdd:TextField=new TextField();
            txAdd.defaultTextFormat=new TextFormat("Arial");
            txAdd.text="JSAdd()";
            txAdd.autoSize="left";
            txAdd.selectable=false;
            txAdd.x=btnAdd.width/2-txAdd.width/2;
            txAdd.y=btnAdd.height/2-txAdd.height/2;
            btnAdd.addChild(txAdd);
            btnAdd.addEventListener(MouseEvent.MOUSE_DOWN,addBtnHandler);
            
            var btnClean:Sprite=new Sprite();
            btnClean.graphics.lineStyle(1,0);
            btnClean.graphics.beginFill(0,0);
            btnClean.graphics.drawRect(0,0,60,30);
            btnClean.x=stage.stageWidth-60;
            addChild(btnClean);
            var txClean:TextField=new TextField();
            txClean.defaultTextFormat=new TextFormat("Arial");
            txClean.text="clean";
            txClean.autoSize="left";
            txClean.selectable=false;
            txClean.x=btnClean.width/2-txClean.width/2;
            txClean.y=btnClean.height/2-txClean.height/2;
            btnClean.addChild(txClean);
            btnClean.addEventListener(MouseEvent.MOUSE_DOWN,function(e:MouseEvent):void
            {
                tfIn.text="";
                tfOut.text="";
            });
        }
    }
}