メイン とにかくFLASH【FLASHに関して全般】 flash counterについて | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
kazamidori | Åê¹ÆNo.8000 投稿日時: 2004-6-4 16:12 |
新米 居住地: 投稿: 13
使用環境:
windowsXP SP2 flashMX8 |
flash counterについて 以下のようなflashカウンターを作ってみました。(書籍本のサンプルを参照しただけなんですけど)でも実行してみると、カウンター値が1づつではなく2づつカウントされるんですよ。
なんでなんでしょう? ///////////////cgifile:sizecounter.cgi/////////////////// #!/usr/local/bin/perl #----- カウンターデータファイル $logfile = "./sizecount.dat"; #----- カウンターの初期値 $count = 12345; #----- カウンターの値の読み込み $count += (-s "$logfile"); #----- カウンターファイルの更新 open(OUT, ">>$logfile"); print OUT "\n"; close(OUT); #----- カウンターの出力 print "Content-type: text/plain\n\n"; print "countdata=$count"; ///////////////////flashActionScript/////////////////////// System.usecodepage = true; //----- CGIのファイル名 CGIFile = "sizecount.cgi"; //----- データの読み込み後の処理 myLoadVars = new LoadVars (); myLoadVars.onLoad = function (success) { dispcount = myLoadVars.countdata; }; //----- データの読み込み myLoadVars.load (CGIFile); /////////////////////////////////////////////////////////// カウンターデータファイル sizecounter.dat /////////////////////////////////////////////////////////// html file counterf6.html ////////////////////////////////////////////////////////// パーミッション sizecount.dat[666] sizecount.cgi[755] counterf6.html[644] 風見鶏 |
森 巧尚 | Åê¹ÆNo.8013 投稿日時: 2004-6-4 17:23 |
モデレータ 居住地: 宝塚 投稿: 650
使用環境:
.5/CS4/Safari3 XP+2000//IE6 |
Re: flash counterについて 森です。
この書籍本って「ActionScript+CGIプログラミング」のことですね。 引用: カウンター値が1づつではなく2づつカウントされるんですよ。 動作環境(CGIサーバーの環境)がわからないので、まず、Flash側の問題かCGI側の問題かを調べる必要がありますね。 Flash側の問題とするならば、何らかの原因でFlashからCGIが2回呼ばれているということはないでしょうか。他のページにもいろいろサンプルが載っていたと思いますが、それらはいかがだったでしょうか。それらも2ずつカウントされるでしょうか。 CGI側の環境の問題とするならば、まずこの方式とは違う「ファイルサイズを用いない方式」でカウントできるか調べてみてはいかがでしょう。とりあえずこれならば確実に動くと思います。このプログラムが載っていたすぐ前のページで説明しています。 また、このプログラムが載っているページでも説明していますが、ファイルサイズを調べるためにファイルテスト演算子の「-s」で調べる方法を取っていますが、stat関数を使って調べる方法に変えてやってみてはどうでしょうか。 また、もし改行コードが1文字として入力されずに2文字ずつ増えているのであればカウントも2つずつ増えていきます。増加させる文字を1文字のスペースなどで試してみてはいかがでしょうか。
|
サブリン | Åê¹ÆNo.8030 投稿日時: 2004-6-5 13:34 |
芸人 居住地: 東京世田谷区 投稿: 354
使用環境:
Snow Leopard Windows 7 CS4-5/FDT |
Re: flash counterについて Flash側で2回呼んでる可能性は?もしくはHTML2箇所に配置しちゃってるとか。
|
kazamidori | Åê¹ÆNo.8036 投稿日時: 2004-6-5 14:57 |
新米 居住地: 投稿: 13
使用環境:
windowsXP SP2 flashMX8 |
Re: flash counterについて いろいろためしてみたんですけど、まずアップするサーバーはplalaです。ためしに、sizecout.cgi count.dat をアップして、ブラウザーからsizecount.cgi 実行してみました。ちゃんとカウントが1づつ増加してくれてます。ANHTTPD 使ってやってみました。これもOKでした。でもflashかますと2づつ増加します。
flashを間にかませると、サーバーにアップしたものではカウント数字は表示されないです。 counterf6.html countf6.swf sizecount.cgi sizecount.dat すべてcgi-binにアップ cgiのパスは #!/usr/local/bin/perlです。 設置上の問題?かなflashパブリッシュ上の問題? http://cgi36.plala.or.jp/webhouse/counterf6.html サブリンさん 森 巧尚さん ありがとうございます。 森 巧尚 さん stat関数での値取得なんですが、 Actionscvript+cgi[p112]の ////////////////////////////////////////// ファイルサイズ=(stat("ファイル名"))[7] ////////////////////////////////////////// のインデックス「7」の値って? 風見鶏 |
森 巧尚 | Åê¹ÆNo.8050 投稿日時: 2004-6-5 15:54 |
モデレータ 居住地: 宝塚 投稿: 650
使用環境:
.5/CS4/Safari3 XP+2000//IE6 |
Re: flash counterについて 引用:
ブラウザーからsizecount.cgi 実行してみました。ちゃんとカウントが1づつ増加してくれてます。 ということはCGI自体は正しく動いているということですね。だとするとFlash側での問題のように思えます。 このときの出力は当然「countdata=10」のようなフォーマットになっていますよね。「変数=値」の形式でないとFlashには渡らないことはお分かりですよね。 引用: でもflashかますと2づつ増加します。 Flash上で数字は表示されないのに、2ずつ増加するということですか。これは、サーバー上のファイルの中身を確認されたということですね。いずれにせよCGIからFlashにデータを受け渡しするところに問題がありそうですね。 3章でCGI→Flashにデータを送るしくみと確認方法を説明しているのですが、そちらは、正しく動いていますか?これを確認すれば、あなたの使っているサーバーでCGI→Flashへの受け渡しが正しく行えているかどうかわかると思います。 CGI→Flashの受け渡しが正しく動いていて、CGIも正しく動いているのであれば、あと考えられるのはカウンターのFlashプログラムに思いもかけないおかしなところがあるということです。カウンターのFlashを詳しく調べてみるか(テキストボックスの変数名の指定場所など、あるいはテキストボックスの文字の色を白色にしていると表示されていないのに見えないということもあります)、あるいは新規に作り直してみてはいかがでしょう。 引用: 森 巧尚 さん stat関数での値取得なんですが、 stat関数の引き数7は、ファイルサイズを返します。ただし、サーバーの種類によっては値を返さないこともあるので、いろいろな方法で試してみてくださいと言ったのですが、ブラウザーから呼び出して動いているようならこれに変更する必要はなさそうですね。
|
ひろゆき | Åê¹ÆNo.8052 投稿日時: 2004-6-5 16:00 |
ちょんまげら 居住地: 東京砂漠 投稿: 4403
使用環境:
10.8.5 Flash Professional CS4/CS6/CC Safari 6.1 |
Re: flash counterについて 経験的なことしか申し上げられないので、参考になるかどうか分かりませんが、
カウンタを作ったときに、カウント数を表示できないことがあったのですが、
としたところ、きちんと表示されたことがありました。 |
ike_chan | Åê¹ÆNo.8065 投稿日時: 2004-6-6 7:26 |
新米 居住地: 大阪 投稿: 14
使用環境:
Windows2000 FlashMX FlashMX2004 |
Re: flash counterについて http://cgi36.plala.or.jp/webhouse/sizecount.cgi
↑CGI自体は動いてますね。 dispcount = myLoadVars.countdata; とされていますが、 もしdispcountがインスタンス名なら、 なにか変数名をつけて、 dispcount.変数名 = myLoadVars.countdata; としてみたらどうでしょうか? その書籍については知りませんので、 見当外れでしたら、ごめんなさい。。 |
森 巧尚 | Åê¹ÆNo.8066 投稿日時: 2004-6-6 10:01 |
モデレータ 居住地: 宝塚 投稿: 650
使用環境:
.5/CS4/Safari3 XP+2000//IE6 |
Re: flash counterについて 森です。著者です。
CGIから値の読み込みが終わったら、その時点で変数「dispcount」に値が入ります。 その変数は、このフレームアクションが書かれた場所にある変数なので、この場所でダイナミックテキストのテキストボックスを用意して「変数名」のほう(インスタンス名ではなく)にdispcountを指定するとその変数の中身がそのまま表示されるので確認できるわけです。 それで、 引用: テキストボックスの変数名の指定場所など、あるいはテキストボックスの文字の色を白色にしていると表示されていないのに見えないということもあります もしdispcountをインスタンス名の方に書いていたのであれば 引用: dispcount.text = myLoadVars.countdata; インスタンス名を付けて「dispcount.変数名 = 」と指定してしまうと、dispcount.変数には値が代入されますが、テキストボックス上には表示されないのです。 ということがあるので「テキストボックスの変数名」を確認されるのが一番早いのではないかと思います。
|
ike_chan | Åê¹ÆNo.8071 投稿日時: 2004-6-6 18:53 |
新米 居住地: 大阪 投稿: 14
使用環境:
Windows2000 FlashMX FlashMX2004 |
Re: flash counterについて 引用:
知らぬこととはいえ、大変失礼いたしました。 テキストボックスをシンボル化してトゥイーンで動かすのかナ、と自分勝手に考えてました。。 ということで、私のレスは忘れてください。 P.S.早速近所の書店で注文させていただきました。。 |
kazamidori | Åê¹ÆNo.8078 投稿日時: 2004-6-7 9:07 |
新米 居住地: 投稿: 13
使用環境:
windowsXP SP2 flashMX8 |
Re: flash counterについて 風見鶏です。いろいろご指導ありがとうです。
なんとかカウントは正常にカウントされるようになりました。 原因は単純なところにありました。sizecount.datをアップするときにアスキーではなくバイナリ扱いにしてたことが原因だと思います。(格好わる?(*_*)) でもバイナリにすることで2カウントづつカウントされる意味がわからないんですけどね。 アクセスする度ごとに1カウントアップで正解ですよね。 リドローで1カウントアップではなく・・・ ホッ!これで先にすすめます。またご指導のほどよろしくです。 風見鶏 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |