無理やりQuery取得
無理やりURL の 後ろの ? 以降を取得するテスト。
適当に後ろに ?hoge=moja とか入れてみてください。
ただし、デバッグプレイヤーオンリー。
@author jc at bk-zen.com
/**
* Copyright bkzen ( http://wonderfl.net/user/bkzen )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/j1f6
*/
package
{
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLLoaderDataFormat;
import flash.net.URLRequest;
import flash.text.TextField;
import flash.utils.ByteArray;
/**
* 無理やりURL の 後ろの ? 以降を取得するテスト。
* 適当に後ろに ?hoge=moja とか入れてみてください。
* ただし、デバッグプレイヤーオンリー。
* @author jc at bk-zen.com
*/
public class GetQueryTest extends Sprite
{
private var txt: TextField;
private var loader:Loader;
public function GetQueryTest()
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e: Event = null): void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
//
txt = new TextField();
txt.width = txt.height = stage.stageWidth == 0 ? 465 : stage.stageWidth;
addChild(txt);
if (WQuery.available)
{
trc("query : " + WQuery.qString);
}
else
{
trc("これは Flash Debug Player で", "ExternalInterface が対応しているブラウザのみ対応しています。");
}
}
private function trc(...rest): void
{
var obj: Object;
while (obj = rest.shift())
{
txt.appendText("" + obj + "\n");
}
}
}
}
/**
* 無理やり URL を取得する。(デバッグプレイヤーオンリー)
*/
class WQuery
{
import flash.external.ExternalInterface;
import flash.system.Capabilities;
private static var _qString: String = "///";
public static function get available(): Boolean { return ExternalInterface.available && Capabilities.isDebugger; }
public static function getQuery(key: String): String
{
if (qString == "" ) return "";
var s: int = _qString.indexOf(key + "=");
if (s < 0) return "";
var e: int = _qString.indexOf("&", s);
if (e < 0) e = _qString.length;
return _qString.substring(s + key.length + 1, e);
}
public static function get qString():String
{
if (!available) return "";
try
{
if (_qString == "///") _qString = ExternalInterface.call("function() { return window.location.search; }");
}
catch (error: Error)
{
if (error.errorID == 2060)
{
var msg: String = error.message;
msg = msg.split(" は ").pop().split(" ").shift();
if (msg.indexOf("?") < 0) _qString = "";
else _qString = msg.substr(msg.indexOf("?"));
}
}
return _qString;
}
}