そういえば、Wordpressに置いたswfからどこまで自身のURLってとれるんだっけか、って思って作ってみた。
参考:[AS3.0] LoaderInfoクラスだ!
http://www.project-nya.jp/modules/weblog/details.php?blog_id=1196
Wonderfl版はこちらから
http://wonderfl.net/c/aAmk
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
package { import flash.display.Sprite; import flash.events.Event; import flash.external.ExternalInterface; import flash.net.LocalConnection; import flash.text.TextField; /** * URL、パス、FlashVers、クエリの取得をします。 * 参考 * http://www.project-nya.jp/modules/weblog/details.php?blog_id=1196 * @author umhr */ public class Main extends Sprite { public function Main() { init(); } private function init():void { if (stage) onInit(); else addEventListener(Event.ADDED_TO_STAGE, onInit); } private function onInit(event:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); // entry point //参考 //http://www.project-nya.jp/modules/weblog/details.php?blog_id=1196 var text:String = ""; text += "◆SWFファイルのURLを取得する(loaderInfo.url)\n"; text += stage.loaderInfo.url; text += "\n\n"; text += "◆SWFファイルのURLを取得する(loaderInfo.loaderURL)\n"; text += stage.loaderInfo.loaderURL; text += "\n\n"; text += "◆ドメインを取得する(new LocalConnection( ).domain)\n"; text += new LocalConnection( ).domain; text += "\n\n"; text += "◆FlashVarsを取得する(loaderInfo.parameters.flashvars)\n"; text += stage.loaderInfo.parameters.flashvars; text += "\n\n"; text += "◆GETクエリを取得する(loaderInfo.parameters.getquery)\n"; text += stage.loaderInfo.parameters.getquery; text += "\n\n"; text += '◆SWFファイルが配置されたURLを取得する(ExternalInterface.call("function() { return window.location.href; }"))\n'; text += getExternalInterfaceCall("href"); text += "\n\n"; text += '◆URLクエリを取得する(ExternalInterface.call("function() { return window.location.search; }"))\n'; text += getExternalInterfaceCall("search"); addText(text); } private function getExternalInterfaceCall(target:String):String { var result:String = ""; try { result = ExternalInterface.call("function() { return window.location." + target + "; }"); } catch (e:*) { //trace(e) result = e; } return result; } private function addText(text:String, x:int = 0, y:int = 0):void { var textField:TextField = new TextField(); textField.text = text; textField.width = stage.stageWidth; textField.height = stage.stageHeight; textField.multiline = true; textField.wordWrap = true; textField.x = x; textField.y = y; this.addChild(textField); } } } |