SelfRemoveTest

by George.Profenza
a test to have a swf remove itself
♥0 | Line 40 | Modified 2014-03-20 01:22:26 | MIT License
play

ActionScript3 source code

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

package {
    import flash.events.MouseEvent;
    import flash.display.AVM1Movie;
    import flash.external.ExternalInterface;
    import flash.text.TextField;
    import flash.events.Event;
    import flash.display.Sprite;
    
    public class SelfRemoveTest extends Sprite {
        
        private var t:TextField       
        
        public function SelfRemoveTest() {
            addEventListener(Event.ADDED_TO_STAGE,init);
        }
        private function init(e:Event):void{
            t = addChild(new TextField()) as TextField;t.selectable = false;
            t.text = "swf: ";// + getSWFObjectName();
            stage.addEventListener(MouseEvent.MOUSE_DOWN,onStageClick);
        }
        private function onStageClick(e:MouseEvent):void{
            t.appendText("click:");//+getSWFObjectName());    
            ExternalInterface.call("alert","click");
        }
        public function getSWFObjectName(): String {
            // Returns the SWF's object name for getElementById
            // Based on https://github.com/millermedeiros/Hasher_AS3_helper/blob/master/dev/src/org/osflash/hasher/Hasher.as
            var js:XML;
            js = <script><![CDATA[
        
                function(__randomFunction) {
        
                    var check = function(objects){
        
                               for (var i = 0; i < objects.length; i++){
        
                                if (objects[i][__randomFunction]) return objects[i].id;
        
                               }
        
                               return undefined;
        
                           };
        
                       
        
                           return check(document.getElementsByTagName("object")) || check(document.getElementsByTagName("embed"));
        
                }
        
            ]]></script>;
        
            var __randomFunction:String = "checkFunction_" + Math.floor(Math.random() * 99999); // Something random just so it's safer
            ExternalInterface.addCallback(__randomFunction, getSWFObjectName); // The second parameter can be anything, just passing a function that exists
            return ExternalInterface.call(js, __randomFunction);
        }
    }
}