プロが教える店舗&オフィスのセキュリティ対策術

初めまして。beterugiusと申します。
ご質問したいのですが、
まず、上下2フレームのindex.phpファイルがあります。
FLASHファイル(top_image.fla)は、シングルフレームのjpegイメージ(三枚の画像をPhotoShopで合成して、一枚のイメージにしてある。)です。
その.flaファイルを書き出した、.swfコンテンツ上をマウスが移動
すると、コンテンツ上のどの部分にマウスがあるかで、下フレームのTHMLが切り替わるようにしたいので、top_image.swf
から、index.phpに対して、GETメソッドでページ番号の変数自身を
渡したいのですが、実際にFLASHコンテンツ上をマウスで動かしてみると、ブラウザのアドレス欄に、GETメソッドのクエリー文字列の「?」
だけは追加されているのですが、肝心の変数が渡されておらず、
下フレームのHTMLも切り替わりません。
どうすればちゅんと動くのか、どなたかご回答いただけないでしょうか?

--------------------------------------------------------------
「top_image.fla」
var sendObj:LoadVars = new LoadVars();
var page:Number;

function onMouseMove(){
var x:Number = top_image._x; // グラフィックの中心座標
var y:Number = top_image._y;

if( 0 <= y && y <= 316 ){
if( 0 <= x && x <= 255 ){
page = 1;
sendObj.send("../php/index.php", "page", "GET");
}
else if( 256 <= x && x <= 512 ){
page = 2;
sendObj.send("../php/index.php", "page", "GET");
}
else if(513 <= x && x <= 766 ){
page = 3;
sendObj.send("../php/index.php", "page", "GET");
}
}
}
--------------------------------------------------------------
「index.php」
<html>
<head><title>ActionScript2.0</title>
<meta http-equiv="content-type" content="application/x-www-form-urlencoded">
</head>
<frameset rows="350,*">
<frame name="top" src="../html/top.html">
<?php
// Action ScriptからのPOSTデータの取得
$page = $_GET['page'];
switch($page){
case 1:
print("<frame name='bottom' src='../html/bottom1.html'>");
break;
case 2:
print("<frame name='bottom' src='../html/bottom2.html'>");
break;
case 3:
print("<frame name='bottom' src='../html/bottom3.html'>");
break;
}
if(is_null($page)){ // $page変数の中身がNULL(未定義)の場合
print("<frame name='bottom' src='../html/blank.html'>");
}
?>
</frameset>
</html>
-------------------------------------------------------------

A 回答 (11件中11~11件)

index.phpでフレームの上下を表示するようにしているなら



p = 1;
url = "../php/index.php?page="+p
getURL(url,"_top", "GET");


下のフレームだけ変えたいのなら

p = 1;
url = "../html/bottom"+p+".html";
getURL(url,"bottom");

//※bottomは下のフレーム名

がわかりやすいと思います。


LoadVarsクラスを使うなら

p = 1;
url = "../php/index.php?page=" + p;
sendObj.send(url, "_top", "GET");
//※フレーム全体をphpで書き換えるので"_top"

だと思います。

環境が無いので確認していません。

この回答への補足

スクリプトをperseさんのおっしゃるように、
getURL()関数を用いて書き換えたました。
とりあえず、上下のフレームを無くして、
ひとつのページにし、POSTメソッドでtop_page.swfから
index.phpに変数1,2,3を送信してみました。
そして、index.php側で、
<?php
$page = $_POST['page'];
switch($page){
case 1:
print $page;
break;

case 2:
print $page;
break;

case 3:
print $page;
break;
}
if(is_null($page)){
print "not page";
}
?>
として動作させたところ、
合成画像のイメージ2上でマウスをクリックしたときだけ、
index.php上に、「2」と表示され、
イメージ1とイメージ3上では「not page」
と表示されてしまいます。(要するに、1と3のときだけ、
変数の中身がindex.phpに渡ってない)

(1)これはどうしてなのでしょうか。
(2)~index.php?page=2&onMouseMove=%5type+Function%5D~
などと、?page=2のあとにだらだらアドレスがくっついている
のですが、POSTメソッドで送ったときもこういう動作になるのは
間違いではないのでしょうか。
(3)top_image.swfコンテンツの上にマウスをもっていくと、
「クリックするとこのコントロールをアクティブにして使用します」
と表示されますが、この表示と、あとコンテンツの周りの破線の
ような枠を非表示にすることはできないのでしょうか。
(4)私が求める動作は、このように毎回、コンテンツ上をクリックして
コンテンツをアクティブにさせてから下フレームを切り替えるのでは
なく、ただコンテンツ上をマウスを動かしただけで、下フレームの
HTMLを切り替えたいのですが、それはどうすればよいのでしょうか。

少々ご質問が長引きましたが、できましたら、(1)~(4)について
それぞれご回答をお願いしたいのですが…。

どうぞよろしくお願いいたします。

補足日時:2007/08/22 01:28
    • good
    • 0
この回答へのお礼

ご回答いただき、大変感謝いたしております。

お礼日時:2007/08/22 01:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!