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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     html内のリンクタグからswfファイルの任意のフレームへ移動
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
midoroo
Åê¹ÆNo.11009
投稿日時: 2004-9-21 20:38
新米
居住地: 東京都
投稿: 3
使用環境:
mac OS9/
html内のリンクタグからswfファイルの任意のフレームへ移動
はじめまして。

html内のリンクタグから別のhtml内にエンベットされているswfの任意のフレームへリンクさせる方法を知りたいのですが、どなたか御存じの方がいらっしゃいましたら、教えて下さい。
rin-ko
Åê¹ÆNo.11014
投稿日時: 2004-9-21 23:27
職人
居住地: 東京
投稿: 397
使用環境:
MacOSX10.5/10.4
WinXP SP3
MX2004Pro/CS3
Re: html内のリンクタグからswfファイルの任意のフレームへ移動
midorooさん、こんにちは。
考え方としては:
1)あるHTMLファイルから別のHTMLファイルにリンクする
2)あるswfを任意のフレームから開始する
という2点に、動作をわけたほうがよいと思います。
で、1)については問題ないとします。
2)については、どうでしょう。
あるswfを任意のフレームからスタートすることはできますか?
また開始フレームを変数として設定することは問題ないですか?
とりあえず、方法としては
a)任意のフレームから開始するswfファイルを作る
b)swfのうめこまれたHTMLファイルにflashvarsパラメーターで、開始フレームを変数として設定する
c)HTMLファイルのタグ内のswfムービー名のあとに「?変数名=値」のかたちで変数を設定する
あたりが考えられます。

あとは、「任意のフレーム」というのが、常に同じフレームを指すのか、ランダムなのか、条件によって決定されるのか、更に、そのswfはいつも任意のフレームから始まるのか、他のリンク先からとんできた時は違うのか、などで方法も微妙に変わってきたりします。
そのあたりは、midorooさんがわからないと思っている点や、想定している動作などをより具体的に示して頂ければ、より適切な回答が得られるかと思います。
midoroo
Åê¹ÆNo.11016
投稿日時: 2004-9-22 0:13
新米
居住地: 東京都
投稿: 3
使用環境:
mac OS9/
Re: html内のリンクタグからswfファイルの任意のフレームへ移動
rin-koさん

お返事ありがとうございます!!

データはコンテンツオープニング用のアニメーションです。アニメーションの最後の方がメニュー画面になっていて、ほかのページからメニュー画面へ戻りたいときに、最初からアニメーションを見ることになってしまわないように、指定されたフレームへリンクさせたいのです。

アニメーション部分とメニュー部分を2つのswfへ分けるのが一番楽だと思ったのですが、ほかの人が作成したデータを支給されていて、データを分けるとスクリプトが正しく動作しなくなってしまいます。なので一番安全な方法は指定されたフレームへリンクさせることだと考えたのですが、変数を使えば可能らしい。。。ということまでは調べたのですが、実際にどのようなスクリプトを作成すればよいのかまったく分かりません。


考え方としては
1)html内のリンクタグ(imgボタン)に変数?を指定する。
2)リンク先のhtmlにエンベッドされているswfには変数によってフレームへ移動するスクリプトを作成しておく。
という感じでしょうか?

どうぞよろしくお願いします。
rin-ko
Åê¹ÆNo.11038
投稿日時: 2004-9-22 19:34
職人
居住地: 東京
投稿: 397
使用環境:
MacOSX10.5/10.4
WinXP SP3
MX2004Pro/CS3
Re: html内のリンクタグからswfファイルの任意のフレームへ移動
引用:
データはコンテンツオープニング用のアニメーションです。アニメーションの最後の方がメニュー画面になっていて、ほかのページからメニュー画面へ戻りたいときに、最初からアニメーションを見ることになってしまわないように、指定されたフレームへリンクさせたいのです。

理解しました。
つまり、一度オープニングを見た(もしくはオープニング不要)というflagがたってるユーザーの場合は、メニュー画面へとばしたいということですよね。
まず、Flash内(メインタイムラインのフレームアクションなど)で、flagがたっているならメニュー画面に飛ぶ、というアクションを設定することについては問題ありませんか?

Flashだけで完結させるなら、SharedObjectを使うという手がありますね。
オープニング開始前のフレームで、まずgetLocal()でオープニングを見たかどうか確認、flagがたってないならオープニングアニメーションのフレームへgotoして、終わった時点でdata.flag=1とし、flush()で書き込み…みたいな感じでしょうか。私のFLA5環境では試せないので理解が間違ってるかもしれませんが、SharedObjectについては過去のスレッドでも何度か話題になっていますので、検索なさってみると参考になるかと思います。

リンク時に変数を設定する方法ですと、その変数をswfにわたしてあげる役目のプログラムがどこかに必要になると思います。
たとえば、以下のように書くとswfにflag=1という変数と値をわたしてあげることができますが、これだけですと、このHTMLファイルにアクセスすると必ずflag=1になってしまいオープニングを見られません(コンテンツ内のリンクから飛んでくるときは必ずメニュー画面を表示というのでしたら、オープニング用とメニュー用にHTMLファイルをふたつ作るのが、現状では楽な気もしますが)。
<object??>
<param name="flashvars" value="flag=1">
<embed ?? flashvars="flag=1">

つまり、JavaScriptなりCGIなりで、動的にこの部分を書き換えなくちゃいけないわけです。
個人的にcookieやJS依存は好きじゃないのですが、それらを使えば上述のSharedObjectと同じ感じ(SharedObjectの役をcookieにお願いし、ASでFLAファイル内に書くのじゃなくJSでHTMLファイル内に書く)でもできます。ただしJSをオフにしている人(私とか)もいたりするので、JSを使う方法は一番安全とはいい難い気がします。
CGIなどを使ってサーバー側にメインのHTMLを生成してもらう手もあります。
どの方法をとるかで、どこにどの言語で何を書くかは変わってきますよね。とりあえずおおざっぱに選択肢をあげてみましたが、参考になりますでしょうか。

ところで、以下の点がちょこっと気になります。
引用:
データを分けるとスクリプトが正しく動作しなくなってしまいます。
意外とターゲットパスの修正程度で「2つのswfへ分けるのが一番楽」という選択肢もありえたりするんじゃないのかなーと思うのですが、どうでしょう。
あと、見た目上はいまいちかもしれませんが、オープニングアニメのところにskipボタンをつけてあげれば、てっとりばやく解決でき、見たい人は何度でもオープニングを見られて良いんじゃないかと思うのですけど、さすがにそれではダメですか。
midoroo
Åê¹ÆNo.11074
投稿日時: 2004-9-25 0:04
新米
居住地: 東京都
投稿: 3
使用環境:
mac OS9/
Re: html内のリンクタグからswfファイルの任意のフレームへ移動
お返事ありがとうございます。
教えていただいたSharedObjectを試してみましたが、二度とオープニングが見れなくなってしまいました。
やはりオープニング、メニューと分ける方向で考えていきたいと思います。

どうもすみません。本当にありがとうございました。

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

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