JavaScriptInjection

by szbzs2004
http://swf.wonderfl.net/swf/usercode/1/1e/1e60/1e60de122b7d5992816ff1daaa1d3236646a864f.swf
♥0 | Line 43 | Modified 2011-12-31 14:52:28 | MIT License
play

ActionScript3 source code

/**
 * Copyright szbzs2004 ( http://wonderfl.net/user/szbzs2004 )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/4kJR
 */

package {
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.external.ExternalInterface;
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;

    public class JavaScriptInjection extends Sprite {
    
        private var tf:TextField;
        
        public function JavaScriptInjection() {
            TextField(addChild(tf = new TextField())).autoSize = TextFieldAutoSize.LEFT;
            addEventListener(Event.ADDED_TO_STAGE, init);
        }
        
        private function init(e:Event):void {
            removeEventListener(e.type, arguments.callee);
            if (ExternalInterface.available) {
                tf.appendText("ExternalInterface available.\n");
                var jsXML:XML =
                    <script>
                        <![CDATA[
                            function sum(n, m) {
                                var s = 0;
                                for (var i = n; i <= m; ++i) {
                                    s += i;
                                }
                                alert("sum[" + n + ".." + m + "] = " + s);
                            }
                        ]]>
                    </script>;
                try {
                    tf.appendText("Call JavaScript function.\n");
                    ExternalInterface.call(jsXML, 1, 100);
                    tf.appendText("Calling ok.\n");
                } catch (error:SecurityError) {
                    tf.appendText("A SecurityError occurred: " + error.message + "\n");
                } catch (error:Error) {
                    tf.appendText("An Error occurred: " + error.message + "\n");
                }
            } else {
                tf.appendText("ExternalInterface not available.\n");
            }
        }
    }
}