navigateToURLで相対パス
金曜日, 27 11月 2009
今日はひたすらAS3をゴリゴリ書いてました。
それはもうひたすらに。Tweenerの便利さを改めて実感してみちゃったり。
っと、まあそんな感じでやっていたら発見というかわかった事があったのでメモ。
navigateToURL
これが、AS3でのリンクの設定なんですが、これの使い方をあまり知らなかったので勢いでやってたら不思議なエラーに遭遇。
お仕事で作成していたサイトがあって、試しのサーバで作業をしていたんですけど本番に移す時にまたリンクを設定し直すのもめんどくさいので、僕はいつも相対パスで設定するんです。構造は自分が持ってるサーバの第2階層にフォルダを用意して展開。swfはその中にさらにフォルダを作って置いてました。
例:テストサイトのindexを「http://www.hogehoge.com/test/」に設置。さらに「http://www.hogehoge.com/test/fla/」にswfを設置。
んでまあ、TOPページのindexに貼ってあるFlashにあるボタンに
navigateToURL(new Request("/contact/"));
ってな感じで設定してみると、予想外の出来事!
新ウィンドウ+http://www.hogehoge.com/contact/」
いや、_blankで開く必要もないし、なぜドメイン直下の階層にいこうとする?
あー、最近PCの調子が悪いから・・・ってわけでもなく。
んで、まあ久しぶりにまじまじとAS3のマニュアルを読んでみると
「値を指定しない場合は、新しい空のウィンドウが作成されます。」
そんなどうでもいい部分まで変えなくても・・・。まあでもこれで_blankの謎は解けた。
けど、階層が意味がわからない。フルパスじゃないとだめですか?
で、いろいろ試した結果「/」が問題らしいということが判明。
せっかく見つけたのでいろいろ試してみたら、
「/xxx/」→ドメイン直下へ移動
「/xxx」→ドメイン直下へ移動
「xxx/」→OK
「xxx」→OK
※xxxはフォルダ名
へー、そんな仕様があるんですね。もしかして、自分が無知すぎるだけか?
まあ、とりあえず今日も一つ賢くなりました。
※追記 2009/12/07
この前同業の方と話をしたときに、このネタを話したら「スラッシュの前にピリオドいれないの?」と言われてハッ?!となりました。
予想通り、リンク先は正常に動作しました。頭にスラッシュを入れてもOKです。ただしピリオドを忘れずに!!(俺だけか・・・orz)