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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     リンクされたURLの引数を変数として受け取る。
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
leafmoon
Åê¹ÆNo.31454
投稿日時: 2007-1-19 11:58
新米
居住地:
投稿: 6
使用環境:
開発環境:WindowsXP FlashProfessional8
確認環境:WindowsXP SP2
リンクされたURLの引数を変数として受け取る。
初めて質問させていただきます。
よろしくお願いいたします。

SWFを配置したHTMLへリンクされたURLの引数をJavaScriptに渡し、
その変数をFLASH側で受け取り、条件分岐をしようとしております。
FlashVarsを使用してHTMLから変数を受けとれるということは分かったのですが、
以下の方法で試したところURLの引数を受け取れていないようです。

流れとしては、以下となります。

1.リンクURLからの引数(123)をswfの貼られたhtmlのJavaScriptで受け取る。
http://www.-----.net/index.html?123

2.変数fooに引数を代入する。
<script type="text/javascript">
var foo = location.href.split("?")[1];
</script>

3.object及びembedタグにFlashVarsを記入しswfに変数のgFooを渡す。
<param name="FlashVars" value="gFoo='foo'" />
<embed src="flashvars.swf" FlashVars="gFoo='foo'"??? />

4.FLASH側で変数を読み込む。
my_txtというダイナミックテキストに変数gFooをいれてみる。
my_txt.text = _level0.gFoo;
結果として引数数字の123ではなく、'foo'を読み込んでしまっている。

解決法をお分かりになる方ご教授お願いします。。

開発環境:WindowsXP FlashProfessional8
確認環境:WindowsXP
Tonpoo (gaienboy改め)
Åê¹ÆNo.31455
投稿日時: 2007-1-19 12:06
職人
居住地: 東京・神宮前
投稿: 717
使用環境:
Windows 7 Professional,
Flash CS5 Pro,
Flash Player 10,1,102,64
Re: リンクされたURLの引数を変数として受け取る。
こんにちは、gaienboyといいます。

FlashVarsの値を記述する箇所をJavaScriptで書き出し、
fooを変数として代入する必要があります。

document.write("<param name=\"FlashVars\" value=\"gFoo="+foo+"\" />");

こんな感じです。embedの方も同じようにしてみてください。


----------------
Tonpoo (a.k.a. gaienboy)
Tonpoo.com / TONPOOBLOG / twitter@tonpootwit

leafmoon
Åê¹ÆNo.31459
投稿日時: 2007-1-19 14:05
新米
居住地:
投稿: 6
使用環境:
開発環境:WindowsXP FlashProfessional8
確認環境:WindowsXP SP2
Re: リンクされたURLの引数を変数として受け取る。
お教えいただいたとおり、
FlashVarsの値をJavaScriptで書き出して試したところ、
fooを変数として代入することができました!
勉強になりました、ありがとうございます!
moon2000
Åê¹ÆNo.36005
投稿日時: 2007-11-6 17:01
新米
居住地: 東京
投稿: 5
使用環境:
OS :WindowsXP Professional SP2

Flash :8.0
Dreamweaver :8.0.2

IE     :7.0.5730.11
Firefox   :2.0.0.9
FlashPlayer :9.0.28.0
Re: リンクされたURLの引数を変数として受け取る。
横からの質問、大変失礼します。

IEのアクティブ化対策のためにDreamweaverのAC_FL_RunContentで
SWFを埋め込んでいるのですが
このようなIEのアクティブ化対策をほどこした状態(他にはSWFObjectなど)で
JavaScriptでFlashVarsの値を書き出す方法があれば
教えていたけだけないでしょうか?

document.writeだと、IEの場合、1クリックしてからでないと
操作ができず、どうにも気持ちが悪いのです・・・


▼AC_FL_RunContentのSWF配置ソース
<script type="text/javascript">
AC_FL_RunContent( 'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0','width','180','height','300','src','movie','pluginspage','http://www.macromedia.com/go/getflashplayer','movie','movie' ); //end AC code
</script>
<noscript>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="180" height="300">
<param name="movie" value="movie.swf">
<embed src="movie.swf" width="180" height="300" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"></embed>
</object>
</noscript>
Tonpoo (gaienboy改め)
Åê¹ÆNo.36006
投稿日時: 2007-11-6 17:26
職人
居住地: 東京・神宮前
投稿: 717
使用環境:
Windows 7 Professional,
Flash CS5 Pro,
Flash Player 10,1,102,64
Re: リンクされたURLの引数を変数として受け取る。
gaienboyです。

moon2000さんのお使いになっているDreamweaverのバージョンが不明なので、
もしかしたら操作方法は異なるかもしれませんが、

1.AC_FL_RunContent関数を使ってSWFを貼り付けているHTMLファイルを
 Dreamweaverで開く。

2.デザインモードでSWFコンテンツ部分を右クリックし、出てきたメニューの中
 から「パラメータ」を選ぶ。

3.「+」ボタンを押してパラメータを追加。「パラメータ」に「FlashVars」、
 「値」に「gFoo=sato」と入力。

・・・とした結果、コードが下記のように変更されていました。
(このサイトでの見やすさの問題で適宜改行を入れています)

if (AC_FL_RunContent == 0) {
	alert("このページでは \"AC_RunActiveContent.js\" が必要です。");
} else {
	AC_FL_RunContent(
	'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0',
	'name','test3',
	'width','800',
	'height','420',
	'align','middle',
	'id','test3',
	'src','test3',
	'quality','high',
	'bgcolor','#ffffff',
	'allowscriptaccess','sameDomain',
	'allowfullscreen','false',
	'pluginspage','http://www.macromedia.com/go/getflashplayer',
	'flashvars','gFoo=sato',
	'movie','test3'
	); //end AC code
}


ということで、上記の赤字部分がFlashVarsの記述に当たるようです。あとは、例
えばページの他の箇所(SWF表示用のコードより上)で値を入れた変数fooを
FlashVarsの値として入れたいならば、

if (AC_FL_RunContent == 0) {
	alert("このページでは \"AC_RunActiveContent.js\" が必要です。");
} else {
	AC_FL_RunContent(
	'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0',
	'name','test3',
	'width','800',
	'height','420',
	'align','middle',
	'id','test3',
	'src','test3',
	'quality','high',
	'bgcolor','#ffffff',
	'allowscriptaccess','sameDomain',
	'allowfullscreen','false',
	'pluginspage','http://www.macromedia.com/go/getflashplayer',
	'flashvars','gFoo='+foo,
	'movie','test3'
	); //end AC code
}


・・・というようになるのではないでしょうか。


----------------
Tonpoo (a.k.a. gaienboy)
Tonpoo.com / TONPOOBLOG / twitter@tonpootwit

ひろゆき
Åê¹ÆNo.36007
投稿日時: 2007-11-6 17:40
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: リンクされたURLの引数を変数として受け取る。
SWFObject ならば、
script type="text/javascript" src="swfobject.js"></script>

	(中略)

<div id="flashcontent">
代替テキスト(SEO対策) または 代替画像
</div>

<script type="text/javascript">
	// <![CDATA[
	var foo = location.href.split("?")[1];
	var so = new SWFObject("movie.swf", "movie", "180", "300", "7.0.19.0", "#FFFFFF");
	so.addParam("allowScriptAccess", "sameDomain");
	so.addParam("quality", "high");
	so.addVariable("gFoo", foo);
	so.write("flashcontent");
	// ]]>
</script>
で、変数 gFoo が _root 上で使えるはずです。 (「SWFObjectを使うのだ! (1)」)


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

moon2000
Åê¹ÆNo.36008
投稿日時: 2007-11-6 20:09
新米
居住地: 東京
投稿: 5
使用環境:
OS :WindowsXP Professional SP2

Flash :8.0
Dreamweaver :8.0.2

IE     :7.0.5730.11
Firefox   :2.0.0.9
FlashPlayer :9.0.28.0
Re: リンクされたURLの引数を変数として受け取る。
gaienboyさん、ひろゆきさん
素早い回答ありがとうございます。

AC_FL_RunContent、SWFObject
の両方ともうまく行くことが確認できました。
すばらしいです。
(Dreamweaverのバージョンは8.0.2です。失礼しました)

色々試行錯誤していたのですが
ちゃんと基本文法を勉強しないとだめですね。
(基礎を理解していない人間には、クォーテーション(引用符)の記述などあやういです・・・)
ありがとうございました!


PS.
ちなみに、何をしたいかと言うと
ブログパーツのミニゲームで高得点を出した人は
その得点を他の人にも見せられる、というものです。

1.高得点を出すと引数付きのURLが表示される
2.そのURLを貼り付けタグ(iframe)のURLと差し替える
3.ブログパーツのSWFはURLの引数を見てハイスコアを表示する

SharedObjectでは他人に見せられないし
PHPなどと連携するのは大変そうなので、
記録達成の簡単な証明としては、ありかなと考えています。
(PEPSIのNEX GAMEのようにクリア型のゲームなら、おめでとうバナーだけですむのですが・・)
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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