• ベストアンサー

【カウンタ画像表示】split?

Flashのアクセスカウンターを作りたいと思って PHP側から値を抜いて、 それをsplit()を使ってバラバラにして その数値の値と同じ値を表示させるMC(ムービークリップ)を 使って桁数を指定してやる方法を教えてください。 PHPから数値"20"を引っ張って、 表示した時にMCで【"00020"人目の訪問者です】 というイメージです。

  • Flash
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
noname#35109
noname#35109
回答No.1

例のごとく, PHP 以外の部分を説明します。 つまり, 変数(n)と,その値(20)は,PHPから受け取ることができた次の段階の話からです。 split() と言う遠回りをしなくても, 文字列関数 substr だけでできますよ。 以前,ココ↓で書いた方法でもありますが。 「取得した時間の表示について。」 http://oshiete1.goo.ne.jp/qa2575992.html   ↑教えて!goo  ↓OKWave (同じです) http://okwave.jp/qa2575992.html   ↑OKWave  ↓教えてBP!(同じです) http://oshiete.nikkeibp.co.jp/qa2575992.html しかし, > 数値の値と同じ値を表示させるMC(ムービークリップ) これが謎ですね。 どういうことでしょう? 単に,テキストフィールドに表示する桁を合わせたいだけなのか, 0 ~ 9 の文字を画像で表示したいということなのか, どちらなのでしょうか。 題名にある 【カウンタ画像表示】 というところから, 0 ~ 9 の文字を画像で表示したいと解釈できそうですが...。 ///////////////////////////////////////////////////////////////// とりあえず簡単な, 「単に,テキストフィールドに表示する桁を合わせる」方法から説明します。 PHP から例えば 「n=20」 を受け取ったとします。 また, ムービークリップのインスタンス名は「counter」にしておいたとしておきます。 また, 「counter」の中のテキストフィールドのインスタンス名は「counttxt」にしておいたとしておきます。 つまり,ファイルの階層構造は次にようになっているということです。  _root   └ counter (ムービークリップ)      └ counttxt (テキストフィールド) そして, フレームのスクリプトに次のように書けばできあがりです。 -------------------------------------------- var n = 20; _root.counter.counttxt.text = ("0000"+n).substr(-5, 5); -------------------------------------------- ご質問で "00020" と書いていらっしゃるところから, 万の位まで表示させると解釈した上でのスクリプトです。 仮に n の値が 20 であるとした場合, まず, ("0000"+n) で "000020" という文字列が得られます。 次に .substr(-5, 5) で, "000020" の文字列のうち,最後から5番目の文字(下5桁)から5文字を取ってくることになります。  000020   |← 5 →| ("0000"+n) のように 0 を4つ引っ付けているのは, n の値が 1桁 の場合も有り得るからです。 ///////////////////////////////////////////////////////////////// 次に,少しややこしい方, 「0 ~ 9 の文字を画像(凝った文字)で表示させる」方法です。 これはまず, 0~9の画像を 1~10 の各フレームに書いたムービークリップを作成します。 ムービークリップ内のタイムライン↓(ずれていると思いますが)。               1               10  □ レイヤー 筆・・|●|●|●|●|●|●|●|●|●|●|               0 |1 |2 |3 |4 |5 |6 |7 |8 |9 つまり, フレーム1 に 0 の絵を描いて, フレーム2 に 1 の絵を描いて,    …  …  … フレーム10 に 9 の絵を描くということです。 そのムービークリップをコピペで5つに増やし横に並べます。   ↓フレーム1 のみが見えるはずなのですべて 0  「0」「0」「0」「0」「0」 そして, 左(万の位)から順に c5,c4,c3,c2,c1 というインスタンス名を付けます。 その c5 ~ c1 をまとめて移動しやすいようにさらにムービークリップに変換します。 c5 ~ c1 が入ったムービークリップのインスタンス名を上の説明と同じく, 「counter」ということにしておきます。 つまり,ファイルの階層構造は次にようになっているということです。  _root   └ counter (ムービークリップ)      ├ c5 (ムービークリップ) 一番左      ├ c4 (ムービークリップ)      ├ c3 (ムービークリップ)      ├ c2 (ムービークリップ)      └ c1 (ムービークリップ) 一番右 そして, フレームのスクリプトに次のように書けばできあがりです。 ------------------------------------------------------- var n = 20; for (i=1; i<=5; i++) { _root.counter["c"+i].gotoAndStop(Number(("0000"+n).substr(-i, 1))+1); } ------------------------------------------------------- Number は 文字列を数値に変換する関数です。 [ ] は配列アクセス演算子です。 substr に関しては,最初の方法で説明した通りです。

dizzdive
質問者

お礼

わかりやすい解説ありがとうございます。 動作確認致しました!

関連するQ&A

  • 画像のランダム表示

    こんにちは。 フラッシュで、画像をランダムに表示させたいのですが、 スクリプトの書き方がわかりません。何方か教えていただけないでしょうか? 構成は ステージ上の【表示ゾーン(zon_mc)】ムービークリップの中に【バリ表示(bari_mc)】ムービークリップを作っています。 トップのステージのタイムラインとは別に画像を表示、非表示させたいのでこのような形になってます。 表示させたい画像は【bari】ファルダの中の【bali01.jpg】~【bali06.jpg】です。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • Flashでムービークリップを常に上に表示する方法

    Flashの初心者で、次のことにつまずいています。 初心者のためにわかりやすく教えていただけたら助かります。 複数のムービークリップ(MC)があるとします。 その中のMCの1つをドラッグして他のMCに重なったときに、ドラッグしたMCが常に他のMCの上に表示されるようにしたいのですが・・・。 どのMCをドラッグした場合でも、他のMCの上に表示されるようにしたいです。 Flashのバージョンは、CS5.5で、アクションスクリプト2.0を使用しています。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • Flash
  • Flashで外部から画像を読み込み、それを円で表示させる方法

    はじめまして。 Flashを始めたばかりの初心者です。 困っていることがあるので投稿させていただきました。 環境はFlash CS3 Professional、OSはMacOSX10.5.4です。 現在、外部からjpg等の画像をムービークリップに読み込み、そのさいに 読み込まれた画像を円の形にして表示させて読み込んで それをドラッグアンドドロップで動かすことができるというアイコンを製作中です。 初心者なりにがんばってできたところは 外部イメージファイルをムービークリップに読み込むということと ドラッグアンドドロップさせるという部分なのですが 画像を円の形にして表示させるという方法がわからないのです。 やってみた方法として 画像が読み込まれるムービークリップの上のレイヤーに円の形のマスクをかけたりしてみたのですが 画像のみ動いてしまい、理想としている形にはなりませんでした。 マスクとムービークリップを一緒に動かすということはできるのでしょうか。 また、他にもなにか良い方法はないでしょうか。よろしくお願いします。

  • カウンターの桁数について

    サイトを作りサーバーへアップしたのですが、カウンターの桁数が 1としか表示されません。(正常にカウントアップはしています) イメージでは、00001が理想です。 どうか宜しくご教授ください。

  • flash as3 ムービークリップの基準点

    flash as3 ムービークリップの基準点について質問させていただきます。 A_mcというムービークリップがあったとして、そのムービークリップの中心の座標と、ステージの中心の座標が合うように、そのムービークリップを移動したいのですが、どうコードを書いていいのか分かりません。 var containerXPos:Number = A_mc.x; (containerXPos)* 0.5 = stage.width * 0.5; イメージはこんな感じで、これを使える形にしていただければ幸いです。 よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • 【新】超初心者です。思うように動いてくれません。

    たびたび申し訳ありません。勘違いがありましたので再投稿いたします。 下記の同タイトル質問はご放念ください。 「シーン1」にムービークリップ「MC01~10」を作成し、MC01から順に再生してゆくFLASHを作成しています。 それぞれのムービークリップの中に早送りボタン配置し、これを押すと次のムービークリップの指定したフレームに移動して再生してほしいのですが、思うように動いてくれません。 _root.mc##.gotoAndPlay(*); もダメでしたし、 _root.nextFrame(*); もダメでした。 (*=該当フレームの数) _root.nextFrame(); で指定すると、次のムービークリップの一番初めから再生はしてくれるのですが、 そのムービークリップ内の指定したフレームから開始したいのです…。 (そもそも、_root.nextFrame(*);が正しいのかどうかもよくわかっていません…) 使用しているのはAdobe Flash CS3 Progessional、Vistaにて作業しています。 まったくの初心者のため、説明不足・意味不明な表現がありましたらご指摘いただければと思います。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • Flash
  • Flash8 ムービークリップをランダムに表示(更新する度に順番を変更)

    他の質問を確認させて頂いたのですが「更新する度に順番を変更」という部分で行き詰まり、今回質問させて頂きました。色々と調べたのですが、同じ質問が存在していたら申し訳ございません。 今回FLASHの作成で、1つのSWF内で3つのムービークリップ(mc_01、mc_02、mc_03)をランダムな順番で表示させたいというものです。ランダムに表示させるまでは、何とか行き着いたのですが、行き詰まったのは「更新の度に前回と順番が重複しない」ということです。 現在の状況は、下記の通りです。 mainというムービークリップに3つのムービークリップ(mc_01、mc_02、mc_03)をランダムに表示。 スクリプトは、下記の通りです。 var a = Math.floor(Math.random()*3)+1; main.attachMovie(["mc"+a], "mc", 0); 現状だと、更新する度にランダムに表示されますが、更新を押した際に、先頭が前回と同じムービークリップになってしまうことがあります。 (一回目の更新:mc_02 → mc_01 → mc_03) (二回目に更新:mc_02 → mc_03 → mc_01) この並びをアクションスクリプトで変えることは可能なのでしょうか?可能だとすれば、どのようなスクリプトを記述、もしくは参考にすれば良いでしょうか? 初心者な質問で申し訳ございませんが、宜しければどなたかご回答のほど宜しくお願い致します。

  • 画像の切り替え方法

    目的はこれです SoftBank 2007 Winter|SoftBank http://mb.softbank.jp/mb/special/07winter/ 似たようなマスクの(ような)切り替え方法にしようと思っています。 画像1表示→ボタンを押す→切り替えアニメーション→画像2表示 →ボタン押す→切り替えアニメ→画像3 …… というシンプルなものを作っています。 ボタンがいくつかあって、押すと画像をまとめてあるMCの各々の指定したフレームに切り替える という方法が本に載っていたので、それを参考にコピペしたのですが ボタンの場合はできたのですが、ムービークリップにコピペしても動きませんでした。 (ムービークリップをボタンのように使っています…ここが間違っているのでしょうか?) ムービークリップだからon(release)が使えないのでしょうか? また、どうすれば動くようになるのでしょうかか? どうかよろしくお願いします。

    • ベストアンサー
    • Flash
  • ActionScript 孫のパス

    こんにちは。 今Flashを編集しているのですが、(初心者です) ┏━━━━━━━┓ ┃┌─────┐┃ ┃│ mc1_1    │┃ ┃└─────┘┃ ┃           ┃ ┗━━mc1━━━┛ mc~はムービークリップのインスタンス名です。 上のようにmc1の中にさらにmc1_1というムービークリップがある、という形です。 「_root.mc1.mc1_1.onRollOver~」のように指定したイベントが動きません。 (onReleaseも同様) 「_root.mc1.onRollOver~」は正常に動きました。 ただし、 「_root.mc1.mc1_1._visible = ~」のように書くと、ちゃんと動作していました。 この場合どういった原因が思い当たりますか? パスが間違っているんでしょうか… ちなみにCS3、ActionScript2.0です。 よろしくお願いします。

  • レンタルカウンタの作成

    PHP + MySQLで、webで良く見かけるような無料レンタルカウンタを作成したいです。 ユーザーがHTMLタグ中にIDを埋め込めば使用できるようにする為には、 例) <html> <body> <img src="http://www.hoge.com/counter.php?id=hoge"> </body> </html> counter.php内でどのように処理を返せば、思ったように画像カウンタを表示出来ますでしょうか? 通常の画像カウンタは作成できるのですが... どなたか知恵をください。宜しくお願いします。 【条件】 ・表示桁数の制限は無し ・カウンタアップ処理済 ・[0]~[9].gifファイルは同一フォルダに存在 ・id = hoge 確認済 ・現在のカウンタ = 99

    • ベストアンサー
    • PHP