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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   とにかく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文字のスペースなどで試してみてはいかがでしょうか。


----------------
森 巧尚
http://www.ymori.com

サブリン
Åê¹ÆNo.8030
投稿日時: 2004-6-5 13:34
芸人
居住地: 東京世田谷区
投稿: 354
使用環境:
Snow Leopard
Windows 7
CS4-5/FDT
Re: flash counterについて
Flash側で2回呼んでる可能性は?もしくはHTML2箇所に配置しちゃってるとか。


----------------
Jin Saburi / SABURI.COM / lash芸人
contact [ jin[at]saburi.com ]
website [ SABURI.COM ]

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関数での値取得なんですが、
Actionscvript+cgi[p112]の
//////////////////////////////////////////
ファイルサイズ=(stat("ファイル名"))[7]
//////////////////////////////////////////

のインデックス「7」の値って?

stat関数の引き数7は、ファイルサイズを返します。ただし、サーバーの種類によっては値を返さないこともあるので、いろいろな方法で試してみてくださいと言ったのですが、ブラウザーから呼び出して動いているようならこれに変更する必要はなさそうですね。


----------------
森 巧尚
http://www.ymori.com

ひろゆき
Åê¹ÆNo.8052
投稿日時: 2004-6-5 16:00
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: flash counterについて
経験的なことしか申し上げられないので、参考になるかどうか分かりませんが、
カウンタを作ったときに、カウント数を表示できないことがあったのですが、
print "countdata=$count&";

としたところ、きちんと表示されたことがありました。
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.変数には値が代入されますが、テキストボックス上には表示されないのです。
ということがあるので「テキストボックスの変数名」を確認されるのが一番早いのではないかと思います。


----------------
森 巧尚
http://www.ymori.com

ike_chan
Åê¹ÆNo.8071
投稿日時: 2004-6-6 18:53
新米
居住地: 大阪
投稿: 14
使用環境:
Windows2000
FlashMX
FlashMX2004
Re: flash counterについて
引用:

森 巧尚さんは書きました:
森です。著者です。
その変数は、このフレームアクションが書かれた場所にある変数なので、この場所でダイナミックテキストのテキストボックスを用意して「変数名」のほう(インスタンス名ではなく)にdispcountを指定するとその変数の中身がそのまま表示されるので確認できるわけです。


知らぬこととはいえ、大変失礼いたしました。
テキストボックスをシンボル化してトゥイーンで動かすのかナ、と自分勝手に考えてました。。

ということで、私のレスは忘れてください。
P.S.早速近所の書店で注文させていただきました。。
kazamidori
Åê¹ÆNo.8078
投稿日時: 2004-6-7 9:07
新米
居住地:
投稿: 13
使用環境:
windowsXP SP2
flashMX8
Re: flash counterについて
風見鶏です。いろいろご指導ありがとうです。
なんとかカウントは正常にカウントされるようになりました。

原因は単純なところにありました。sizecount.datをアップするときにアスキーではなくバイナリ扱いにしてたことが原因だと思います。(格好わる?(*_*))

でもバイナリにすることで2カウントづつカウントされる意味がわからないんですけどね。

アクセスする度ごとに1カウントアップで正解ですよね。
リドローで1カウントアップではなく・・・
ホッ!これで先にすすめます。またご指導のほどよろしくです。


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

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