トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     相対パスで設定したgetURLが正常に動きません
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
mai0629
Åê¹ÆNo.18141
投稿日時: 2005-6-16 15:38
半人前
居住地:
投稿: 30
使用環境:
Winxp,Flash CS3 Professional AS2
相対パスで設定したgetURLが正常に動きません
こんにちは
はじめて 参加させていただきます
3224と 同じような質問内容で恐縮です

www/***.swf  でリンクボタンを作成し

www/○○○/index.html を呼び出すために
下記のように 記載しました

-----------以下

on (release) {
getURL("○○○/index.html");

}

-----ここまで

すると
www/直下のhtml
では 正常に作動しますが

○○○/index.html
へ移動して 
   ↓
同じ
www/***.swf

○○○/index.html

へのリンクボタンを作動させると

○○○/○○○/index.html
を呼び出してしまいます

記述になにか 不足があるのでしょうか?
よろしくお願いします
ひろゆき
Åê¹ÆNo.18142
投稿日時: 2005-6-16 15:58
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: 相対パスで設定したgetURLが正常に動きません
アカウント編集」で、使用環境は書いておきましょう。
プロフィール・使用環境記入のお願い

引用:
3224と 同じような質問内容で恐縮です

get URL でフォルダーを使用した場合のパスの指定を教えてください。
とは、違うケースだと思います。

リンク先や読み込み先の指定の起点は、
***.swf ではなく、***.swf を表示している html になります。
ハイ。ここ重要です。中間テストに出ます!

したがって、
www
 |_ ***.html
 |_ ***.swf
 |_ ○○○
  |_ index.html
  |_ test.html
というファイル構成の場合、
***.html から test.html へ飛びたい場合には、
on (release) {
	getURL("○○○/test.html");
}
ですが、
○○○/index.html から ○○○/test.html へ飛びたい場合には、
on (release) {
	getURL("test.html");
}

なので、
on (release) {
	getURL("○○○/test.html");
}
と記述した ***.swf を表示している ○○○/index.html から
○○○/○○○/test.html を呼び出すのは
正常に機能しているということになります。

***.swf を起点にして考えると、分からなくなっちゃいますので、ご注意を。

別階層にあるswfをhtmlに読み込ませる」が参考になるでしょうか。


----------------
質問する際は、回答者に具体的な情報を与えてください。

mai0629
Åê¹ÆNo.18143
投稿日時: 2005-6-16 16:25
半人前
居住地:
投稿: 30
使用環境:
Winxp,Flash CS3 Professional AS2
Re: 相対パスで設定したgetURLが正常に動きません
ひろゆきさん ありがとうございます
(環境は winxp mxでした・・・記載しました)

リンク先や読み込み先の指定の起点は、
***.swf ではなく、***.swf を表示している html になります。
ハイ。ここ重要です。中間テストに出ます!

↑これ! ここが問題なのですが
そうすると このままですと
階層ごと
何個もswfを作る必要があるように思えるのですが
それを回避するための 方法を教えていただけませんか?
ひろゆき
Åê¹ÆNo.18144
投稿日時: 2005-6-16 16:28
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: 相対パスで設定したgetURLが正常に動きません
相対パスではなく、絶対パスでリンク先を指定するのはダメでしょうか?
絶対パスを避けて、相対パスにされている理由を
ご説明いただいた方が、回避策も考えやすいですが。

もし「絶対パスだと記述が長くなって面倒だから」という理由で
相対パスにされているのであれば、
//_root フレームアクション
baseURL = "http://www.aaa.bbb/";
としておいて、
on (release) {
	getURL(_root.baseURL + "○○○/test.html");
}
などとする方法もあるでしょう。

これなら、どの階層の html から ***.swf を呼び出しても、
リンクは思う通りに機能すると思います。

これであれば、サーバを移転したりしても、
_root の baseUrl を書き換えれば済むので、
ボタンすべてのスクリプトを書き換える必要はないでしょう。

ただ、この場合だと、ローカルでの確認が面倒なのが難点ですが。

this._url を使う方法も考えられそうですが、
すぐにスクリプトを思いつかないので、保留



----------------
質問する際は、回答者に具体的な情報を与えてください。

mai0629
Åê¹ÆNo.18146
投稿日時: 2005-6-16 16:39
半人前
居住地:
投稿: 30
使用環境:
Winxp,Flash CS3 Professional AS2
Re: 相対パスで設定したgetURLが正常に動きません
ありがとうございます・・・

それが 社内の環境での確認および テストサーバ
本番環境と いくつかの 環境で 動作させなくてはならず

お教えいただいた 方法だと ちょっと複雑なのです

いまさらなのですが このようなケースの場合
やはり URLの指定は絶対パスで なのです・・ね?
ひろゆき
Åê¹ÆNo.18147
投稿日時: 2005-6-16 16:50
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: 相対パスで設定したgetURLが正常に動きません
//_root フレームアクション
swfURL = this._url;
baseURL = swfURL.substr(0,swfURL.lastIndexOf("/")+1);
としておいて、
on (release) {
	getURL(_root.baseURL + "○○○/test.html");
}
で、簡単なものを作って、試してみてください。
#"/"で、動くのかどうか不安ですが。

とりあえず、うちの環境では動くみたいです。
サンプル
ファイル構成は以下の通り。
baseURL
 |_ t832411.html (home)
 |_ t832411.swf
 |_ t832411a
  |_ index.html (menu a)
  |_ t832411c
   |_ index.html (menu c)
 |_ t832411b
  |_ index.html (menu b)


----------------
質問する際は、回答者に具体的な情報を与えてください。

mai0629
Åê¹ÆNo.18150
投稿日時: 2005-6-16 17:44
半人前
居住地:
投稿: 30
使用環境:
Winxp,Flash CS3 Professional AS2
Re: 相対パスで設定したgetURLが正常に動きません
本当に ありがとうございます!

早速 試してみました
この方法で サーバ上では 問題なかったのですが
やはり ローカル上で見ますと 
ローカルの直下を("/")と認識してしまい・・

上手く 動いてくれないのです・・。 

それとも・・

//_root フレームアクションswfURL = this._url;baseURL = swfURL.substr(0,swfURL.lastIndexOf("/")+1);

を フレームアクションに

swfURL = this._url;baseURL = swfURL.substr(0,swfURL.lastIndexOf("/")+1);

ここだけ記載したのですが
これが 間違ってましたか??
もう一回 やってみます!


>自己レス
やはりダメでした・・。
ひろゆき
Åê¹ÆNo.18158
投稿日時: 2005-6-17 0:56
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: 相対パスで設定したgetURLが正常に動きません
↓これは2行になっていますよね?
swfURL = this._url;
baseURL = swfURL.substr(0,swfURL.lastIndexOf("/")+1);

引用:
//_root フレームアクションswfURL = this._url;baseURL = swfURL.substr(0,swfURL.lastIndexOf("/")+1);
これだと、全部コメントアウトされてしまうと思うのですが。

引用:
ローカルの直下を("/")と認識してしまい・・

ローカルで、
swfURL = this._url;
trace(swfURL);
baseURL = swfURL.substr(0,swfURL.lastIndexOf("/")+1);
として、
ムービープレビューすると、何と出力されるのでしょう?


----------------
質問する際は、回答者に具体的な情報を与えてください。

mai0629
Åê¹ÆNo.18161
投稿日時: 2005-6-17 10:36
半人前
居住地:
投稿: 30
使用環境:
Winxp,Flash CS3 Professional AS2
Re: 相対パスで設定したgetURLが正常に動きません
ありがとうございます
やってみました


swfURL = this._url;
trace(swfURL);
baseURL = swfURL.substr(0,swfURL.lastIndexOf("/")+1);

と したところ
file:///C|/Documents%20and%20Settings/user/My%20Documents/mai/client/client%5Fflash.swf

と出力されました
Fla4man
Åê¹ÆNo.18168
投稿日時: 2005-6-17 13:53
職人
居住地: かまくら
投稿: 517
使用環境:
WinMe,Win2000,
Flash4,アズさん,大仏、delphi
Re: 相対パスで設定したgetURLが正常に動きません
ローカルで実行する場合はブラウザによってセパレータが違うので
万能にするならば
"/"と"\"を見る必要があると思います
(スタンドアローンプレーヤーとモジラ系は"/"のみ)

私はFlash4+必要に応じた拡張なひとでLastIndexは使わないので
LastIndexに対する動作スペックはわからないのですが
動作するならば両方の値をとって大きい方がセパレータ

普通にループを組む場合は
Substringで後ろから orでチェックさせれば固いと思います

昔作ったサンプル
http://www.ne.jp/asahi/net/dunk/tq/func1b.swf

ダウンロードしてローカルでIEで確認してみてください
多分フォントが英文なので「\」になっていると思いますが

あと他にも手があります
Embedタグであればベースに対応するURLを変数として与える方法
そしてiframeで表示する方法です。

iframeを使う方法はパラメータわたしができなかったり
Javascriptが使えなかったりする反面
起点がSWFのURLになるので手っ取り早い方法である上
クロスサイトスクリプティングの制約に引っかからないので
ほぼスタンドアローンで動くものであれば
他のドメインのHTML上でも動くというメリットがあります。
SWFから他のURLを開く場合ターゲットを指定しないとSWFの小さいフレームに表示してしまいますが
使いやすいです
iframeのみてくれについては各種CSS等のサイトを参考にしてください

私自身は最近ひろゆきさんが提示したこの「_URL」を削る方法とiframeを使う方法を選んで使う方向になりつつあります

でiframeにパラメータをつけて開くと?以降を取得すると文字列として使えます。
例えば上のURLにごみをつけて
http://www.ne.jp/asahi/net/dunk/tq/func1b.swf?1234
をクリックすると分かると思います


----------------
通常のハンドル名:×○○× ねた回収モードに突入 現在1/100

(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops