No.1ベストアンサー
- 回答日時:
> フレーム内にswfを読み込む
そういうことは普通はしてはならないことになってます。
だからFlashVarsなどの方法しかないのだと思います。
ブラウザにSWFを直表示しても何も表示されない環境も多々ある
ブラウザにSWFを直表示すると落ちるブラウザもある
その他
細かいレイアウト調節などができない
JavaScriptとの連携が不可能になる
などが「してはならない」理由です。
以下は「してはならない」ということがわかっていてあえてする場合の回答です。
ActionScript 2.0(1.0) では MovieClip クラスの _url プロパティで SWF のURLを取得できます。
たとえば,あるフレームに
<FRAME name="○○" src="△△.swf?a=aiueo">
のようにして「△△.swf」 をクエリ文字列付きで表示させます。
その「△△.swf」のフレーム1には次のように書いておきます。
-----------------
//swfのURLを「?」でsplitして配列url_arr を作成
var url_arr:Array = this._url.split("?");
// クエリの文字列を変数 query_str に取得
var query_str:String = url_arr[url_arr.length-1];
//テキストフィールド「url_txt」を作成
this.createTextField("url_txt", 0, 10, 5, 360, 20);
//「url_txt」にクエリ文字列を表示
url_txt.text = query_str;
-----------------
これでクエリ文字列の部分「a=aiueo」がSWF内で取得できます。
テキストフィールドは検証するためのもので実際は関係ありません。
※ウェブサーバ上にアップした場合検証できます。
ローカルPC内のSWFでは検証不可だと思います。
ActionScript 3.0 では loaderInfo クラス の url プロパティで SWF のURLを取得できます。
上のスクリプトと同様のものを フレーム1 に書くなら次のようになります。
-----------------
//swfのURLを「?」でsplitして配列url_arr を作成
var url_arr:Array = loaderInfo.url.split("?");
// クエリの文字列を変数 query_str に取得
var query_str:String = url_arr[url_arr.length - 1];
//テキストフィールド「url_txt」を作成
var url_txt:TextField = new TextField();
url_txt.x = 10;
url_txt.y = 5;
url_txt.width = 300;
url_txt.height = 20;
//「url_txt」にクエリ文字列を表示
url_txt.text = query_str;
//「url_txt」をrootに配置
this.addChild(url_txt);
-----------------
※同じくローカルPCのSWFでは検証不可だと思います。
このような感じでURLからクエリを取りだして
それを操作すれば使うことはできると思います。
データの形はパースしやすいようにすれば良いです。
例えば
<FRAME name="○○" src="△△.swf?ABC&DE&FG">
のようにし
ABC&DE&FGH を 「&」 で split して
["ABC","DE","FG"] という配列の要素で取得するなど
方法は色々あると思います。
この回答への補足
いつも御丁寧にありがとうございます。本当に助かっています。
この件については、htmlからswfに変数を引き渡すようなことはせずに、swf内からsendAndLoadでサーバー側のセッション変数の読み込みや書き込みをすることを今は検討しています。これなら少なくともサーバー側とのデータのやりとりについては問題ないですよね?
それから「フレームにSWFを読み込むことはしない」理由について了解しました。
フレームを使うことの利点(たとえばユーザ操作によってブラウザの大きさが変わった時に自動的にSWF画面の大きさを縦横比率を変えずに自動的に調整してくれるなど)よりも不利益の方が多いということですね?
ただ、「ブラウザにSWFを直表示する」という表現がよく理解できませんでした。
「直表示」ではない「表示」とはどのような方法を指すのでしょうか?
すみませんけどよろしくお願いします。
No.2
- 回答日時:
#1です。
> 「直表示」ではない「表示」とはどのような方法を指すのでしょうか?
普通通りobjectタグやembedタグでHTMLに貼り付けるということです。
とにかくブラウザとしては ActiveXコントロール を1つに定めないとならないわけで,
その自動判別プログラムがないブラウザなどは表示できません。
SWF を ブラウザ に直接表示(フレーム内に直接表示も含む)できるのは,
そのブラウザが自動的に簡易 objectタグ を生成して自動補完するからのようです。
普通ではない場合 とは,
携帯電話用のFlashを作成して
そのFlashを携帯電話でインタラクティブ再生させるときです。
その場合に限って SWF を携帯電話に直表示させます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 画像編集・動画編集・音楽編集 Corel VideoStudio Pro X8 で、SWFをmp4に変換する方法 1 2022/05/06 22:19
- C言語・C++・C# このプログラミング誰か教えてくれませんか 3 2022/05/13 17:27
- HTML・CSS HTMLタグのあるCSVファイルを利用する方法 4 2023/03/19 14:41
- C言語・C++・C# このプログラミング誰か教えてくれませんか 2 2022/05/14 09:45
- その他(学校・勉強) この中で間違ってある説明はありますか?詳しい方に教えていただきたいです。 A. 1つのプログラムが複 2 2023/07/14 01:15
- Excel(エクセル) エクセルでSUMIFS関数で条件範囲の部分が#valueになる。 4 2023/04/28 12:42
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- JavaScript javascriptで変数を組み込みたい 2 2023/01/13 09:52
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
flashのおみくじのような(4桁...
-
ランダムに4桁の数字を表示する...
-
別のアプリケーションのテキス...
-
python ボタンを押すと複数の関...
-
テキストボックスの中身をリセ...
-
VBScriptでMsgBoxのYesNoボック...
-
変数に256文字以上のテキストを...
-
フォームの生成と破棄
-
四乗根を英語で言うと・・・
-
DataTableの件数を取得したい
-
YOASOBI
-
ADに参加していないPCからADサ...
-
画面の範囲選択
-
ダブルクリックと2回クリックの...
-
'2465'指定した式で参照してい...
-
VB6.0のHideのバグ?
-
PythonでSetWindowPosを使うに...
-
【Photoshop】レイヤー効果の境...
-
VB6.0 でメニューを作りたいん...
-
VBAからPDFのテキストフィールド
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
flashのおみくじのような(4桁...
-
スクロールバーの自作の仕方
-
ランダムに4桁の数字を表示する...
-
ActionScriptで1ヶ月前の日付や...
-
複数の入力テキストに同じ入力...
-
ダイナミックテキストの表示値...
-
Flash MX2004で計算結果が「NaN...
-
外部テキストをsplitで分割する時
-
AS3 時計のコロンの点滅を0.5s...
-
FlashとPHPを使ったチャット
-
今日の残り時間を表示する時計...
-
外部テキストファイルより座標...
-
photoshopで書いた四角の枠の中...
-
VBScriptでMsgBoxのYesNoボック...
-
webページ上、TABフォーカス出...
-
プログラミング、アーキテクチ...
-
VBAで改行の入ったデータの正規...
-
python ボタンを押すと複数の関...
-
YOASOBI
-
RPG(AS400)の本、サイトってあ...
おすすめ情報