この講座は,flashソフトを用いてflashアニメをスクリプトで制作し無料で公開したものです![]() |
|||
FLASH講座 ーアクションスクリプトの実践的事始めー
|
|||
(18)アクセスカウンター_2も参照ください(もっと踊ります) 「ホームページにアクセスカウンターはつきものですが、FLASHでトップページを作った場合、その画面にカウンターを埋め込むにはどうしたらいいんでしょうか?」…このような疑問にお答えいたします。 無料サイトのカウンターを貼るわけにはいかないので、自分でcgiを設置して、Flashからデータを取り込んで表示しなければなりません。 自前cgiを使えるプロバイダーでなければ出来ないという制約がありますし、それよりも、このサイトの読者の多くはcgiって何?とか、cgiの中身なんか分からないよという方が多いかもしれませんが、カウンター設置の必要性は高いと思われるので、今回の講座にします。 原理はとても簡単です。 Flashが再生開始になるとcgiを呼び出す。すると、cgiはカウントの従来値に+1たして累積DATAをFlashのテキストフィールドに返すというものです。 ![]() |
|||
アクセスカウンター用のcgiはWebで探せば沢山見つかります。 しかし、そのままではFlash用には使えません。 そこで改造が必要になりますが、改造するのは結構手間がかかので、ここでは自前のcgiを作成し、これを使うことにします。 自前のcgiといっても、とてもシンプルなもので、とにかくページが開かれればそれが自分であろうが、連続であろうがカウントされるという基本的なものです。 cgiの解説は本題から離れるのでしませんが、使って見ようという方がおられれば、こちらを参照ください。 ステージの準備 カウンターを設置したい場所にテキストツールでテキストフィールドを作成する。 このとき背景を矩形ツールなどで描き好みの色に色付けしたりもできるし、全体の背景に溶け込ませることも出来る。 以下にメニューバー群の下に配置したときの例を示す。 テキストの種類: ダイナミックテキスト インスタンス名: counter なお、カウンター1は普通の静止型、カウンター2は動きのある例としてスクロール表示型。 スクリプトとサンプル表示 以下のスクリプトは、カウンター1,2を別々に表示させるときのスクリプトである。 |
|||
<カウンター1> myLoadVars = new LoadVars(); myLoadVars.onLoad = function(success) { if (success) { _root.counter.text = this.count } } myLoadVars.sendAndLoad("counter4flash.cgi",myLoadVars); stop(); スクリプトの説明: LoadVars:Flashとサーバーの間でデータをやり取りするために 定義されるオブジェクト LoadVars.onLoad:データ読み込みの正否を判断し、そのデータを どうするかを決める。ここでは、成功したときに、 テキストフィールドcounterに表示させている。 this.count:cgiから呼び込まれたcountと名のついたデータ sendAndLoad:cgiを呼び出しデータをmyLoadVarsに取り込む counter4flash.cgi:cgiファイルのあるところへパスを通すこと |
|||
<カウンター2> var cnt:Number = 0; var cnt_str:String = ""; for (i = 1; i<20; i++) { cnt_str += " "; } System.useCodepage = true; myLoadVars = new LoadVars(); myLoadVars.onLoad = function(success) { if (success) { cnt_str +="あなたは "+this.count+" 人目の訪問者です"; _root.onEnterFrame = countertext_me; } } myLoadVars.sendAndLoad("counter4flash.cgi",myLoadVars); function countertext_me() { counter.text = cnt_str.substr(cnt, cnt_str.length); if (cnt>cnt_str.length) { cnt=0; } cnt++; } stop(); |
文字列cnt_strを定義 cnt_strに20字分の空白部を入れる s-Jisコード使用可能 空白部にプラスして、文字列定義 function countertext_meの実行 function countertext_meの定義 文字列の先頭から、連続的に1字ずつ切り取っていく |
||
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - -
|
|||
HOME Flash講座総リスト flash アクションスクリプト 応用編 (2) |