現在のURLを取得する - Action Script

Flexアプリケーションで現在位置のURLを取得するコードを紹介します。

UI

下図のUIを用意します。ボタン1つ、ラベル1つを画面に配置します。


ボタンをクリックして選択し、右クリックでポップアップメニューを表示します。メニュー内の[Click ハンドラーを作成]メニューを選択します。


ボタンのクリックイベントハンドラーが作成されコード画面(下図参照)が表示されます。


[デザイン]ボタンを押してデザイン画面に戻ります。画面に配置したラベルをクリックして選択し、プロパティウィンドウの[ID]に"label1"とIDを設定します。

コード

以下のコードを記述します。実質はボタンのClickイベントハンドラー部分を記述するのみです。
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/mx"
               width="360" height="200" minWidth="955" minHeight="600">
  
  <fx:Script>
    <![CDATA[
      protected function button1_clickHandler(event:MouseEvent):void
      {
        // TODO Auto-generated method stub
        label1.text = this.url;
      }
    ]]>
  </fx:Script>
  
  <fx:Declarations>
    <!-- 非ビジュアルエレメント (サービス、値オブジェクトなど) をここに配置 -->
  </fx:Declarations>
  <s:Button x="10" y="10" label="ボタン" click="button1_clickHandler(event)"/>
  <s:Label id="label1" x="10" y="39" text="ラベル"/>
</s:Application>

実行結果

アプリケーションを配置して、ウェブブラウザでアクセスします。下図の画面が表示されますのでボタンを押します。


ウェブブラウザでアクセスしたURLのswfファイルのURLが表示されます。


swfファイルのURLのため、下図のようにURLにパラメータを付加しても画面に表示されるURLには反映されません。


補足

LoaderInfoオブジェクトを用いて下記のように記述してもURLを取得できます。
protected function button1_clickHandler(event:MouseEvent):void
{
  // TODO Auto-generated method stub
  label1.text = loaderInfo.url;
}
著者
iPentecのメインデザイナー
Webページ、Webクリエイティブのデザインを担当。PhotoshopやIllustratorの作業もする。
掲載日: 2012-03-20
iPentec all rights reserverd.