SelfRemoveTest
a test to have a swf remove itself
♥0 |
Line 40 |
Modified 2014-03-20 01:22:26 |
MIT License
archived:2017-03-20 03:04:04
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);
}
}
}