• ベストアンサー

ページ番号をつけたい

BlurFiltanの回答

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

基本的によくわからないご質問だと思います。 普通は1ページ1ページ,テキストを手で打つと思いますし, 55ページでも555ページでも,それくらいであれば,考えたり質問するより早く打ててしまいまうと思うのですが。 よくわかりませんが, ActionScript によって全自動でしたいということなのでしょうか? 一応 コピー&ペースト するだけで,全自動でページ数を振るスクリプトを考えてみました。 しかし,手作業ですることを ActionScript にさせているようなものです↓。 ----------------------------------------------- // ---_root の フレーム1 に書くスクリプト--- // ストップ(すでに書いてあれば不要) stop(); // TextFormatクラスのインスタンス page_fmt を作成 page_fmt = new TextFormat(); // 文字のサイズを指定 page_fmt.size = 24; // // _root の深度 0 に空のムービークリップ page_mc を作成する _root.createEmptyMovieClip("page_mc", 0); // page_mc の中にテキストフィールド page_txt を作成する _root.page_mc.createTextField("page_txt", 0, 0, 0, 0, 0); // テキストの色を指定(現在 0x0000FF は青) _root.page_mc.page_txt.textColor = 0x0000FF; _root.page_mc.page_txt.autoSize = "left"; // // 随時更新(本当はボタンのクリックで動作させる方がベター) _root.page_mc.onEnterFrame = function() { // page_txt に _root の 現在フレーム/全フレーム数 を表示 ★1 this.page_txt.text = _root._currentframe+"/"+_root._totalframes; // page_fmt のフォーマットを適用 this.page_txt.setTextFormat(page_fmt); // 表示座標の更新 ★2 this._x = Stage.width/2-this._width/2; this._y = Stage.height-50; }; ----------------------------------------------- ★1 について。 本題はこの ★1 の 1行 だけです。  _root._currentframe+"/"+_root._totalframes  _root(親元の根)._current(現時の)frame(フレーム)             +        "/" (文字列の / スラッシュ)             +  _root(親元の根)._total(全体の)frames(フレーム数) _root._currentframe は数値,"/" は文字列,_root._totalframes は数値です。 したがって 数値+文字列+数値 → 文字列 になります。 この文字列を任意のテキストフィールドに表示させれば良いわけです。 それ以外の行は, テキストフィールドを作成したり,色やサイズなどを決めたり,随時表示が変わるようなしくみにしてあるだけのものです。 ★2 について。 どこにページ数を表示させれば良いのかわからないため, 上記のスクリプトでは, 勝手にページ(ステージ)中央の下の方のにページ数を表示させるようにしています。 場所は適当に計算して考えてください。 ページによって場所を変えたいとか色を変えたいとかはナシです。 そういうことをするのでしたら,手で打った方が早いと思います。

coucha
質問者

お礼

ありがとうございました。 ★1の指示で表示されました。 まだ、flashをはじめたばかりで、コピー&ペーストで手動で・・・って思っていたんですが、50数ページのファイルを50以上作らねばならず、スクリプトで出来れば、その今のページ(フレーム)だけでも入力しなくてもと考え質問させていただきました。 色の指定や、フォントサイズの指定もスクリプトでする場合の方法も知識として知ることができました。 非常に助かりました。ありがとうございます。

coucha
質問者

補足

BlurFiltan様が教えていただいた方法でいったんは、思い通りの動きをしてくれたのですが・・・その後の状況です。 実は、最初に1ファイル、50数ページの本のようなものを作成していると説明させて頂きましたが、その50数ページの本が、50ファイルあり・・・つまり、実際の本で例えると、50数ページの本が50巻あり、その表紙となるフラッシュファイルmain.flaがあり、メインのタイトルページ、50巻各ファイル(swf)に飛ぶ、50個のボタンがあり、それらを呼び込む空のmc(main_mc)を置き、50個のボタンでユーザーが見たいボタンを押すと、その希望されたswfがloadMovieされる仕組みになっており、main.flaは、メインタイトルのページ、ボタンのページ、「はじめに」「終わりに」「このソフトの使い方」など5ページ(5フレーム)から成っております。 ロードすると、ロードされるswfで教えていただいたようにスクリプトを書き、1/55、2/55・・・と成っている物が、main.flaが5ページ(5フレーム)からなっているので、1/5と変わってしまい、ロードされているswfが何ページ有ろうと、全頁1/5の表記になってしまいます。BlurFiltanがおっしゃるように、手動でテキストデータで1/55、2/55とすればよいのかもしれませんが、その辺をスクリプトで規制する方法はないのでしょうか? また、第2の質問になってしまいますが、頁をめくるのに、最初にご説明させていただいたように、ロードされる50種のファイル(aa.swf,bb.swf, など50種)も、main.flaも頁をめくるのに、next_btn,prev_btnなど入れ子にしてあるボタンを置いていますが、そこを押さずに「→」「←」のキーを押せば、めくれるようになっています。aa.swf,bb.swfをロードした際に、prev,nextのボタンを押せば、問題なくロードしてもめくれるのですが(フレーム移動する)キー操作では、ロードした後にフレーム移動しません。キー操作の疑問について改めて別枠でご質問いたせばよいのかもしれませんが、連動した疑問でしたのでこの場でご質問させて頂きました。つたない説明で解りにくい点も多いかと思いますが、どうぞご教授下さい。

関連するQ&A

  • スクリプトの記述について

    FlashMXでゲームを作成しています。 MCの、例えば5フレーム目が表示されているときに、メインタイムラインのクローズボタンをクリックするとその5フレーム目の画像が消えるというような スクリプトはどう書けばいいのでしょうか。 クローズボタン(インスタンス名close_btn)に、 on(release){ if(○○○○){ ~のようなものになると思うのですが。 MCはメインタイムラインに配置されていて、ダブルクリックすると MC独自のライムラインになったときの5フレーム目です。 ゲームはいわゆる脱出系で、この部分だけがわからずにいます。 MCのインスタンス名はabout1としています。

    • ベストアンサー
    • Flash
  • Action Script 3.0について質問です。

    一つのFlashの中に3箇所のフレームがあり、各フレームごとに、page.1 ・ page.2 ・ page.3 とタイトルが表示されたページがあります。 そして、prev.btn・next.btn・enter.btnを配置し各フレームを移動したいと考えています。そしてここからが質問なのですが、各ページを表示した後、enter.btnを押すと表示されているページの詳細コーナーへ移動するようにしたいのです。(移動先はswf読み込みでもフレーム移動でも可) どなたか良い方法を教えていただけたらと思っています。 どうか宜しくお願いします。

  • AS3.0で子MCから他の子MCのフレームへ移動

    Flash professional CS5を使用してAS3.0で記述しています。 メインのタイムラインにフレームラベルが二つ(main1とmain2)あります。 main1にはステージにムービークリップのmc1が,main2にはmc2が配置してあります。 さらに, こういう書き方でいいのかわかりませんが; mc1内にはフレームラベルsub1,sub2があります。 同様に, mc2内にはフレームラベルpart1,part2があります。 sub1ではボタン(btn1)があり,押すとフレームラベルsub2に進むようになっています。(確認済み) sub2にもボタン(btn2)が用意してあり押したらムービークリップmc2内のpart2に移動させたいと考えています。 フレームラベルsub2で btn2.addEventListener(MouseEvent.CLICK, Click2); function Click2(evt:MouseEvent):void{ MovieClip(parent).gotoAndStop("main2"); } と記述すればメインタイムラインのフレームラベルmain2に移動することは確認しました。 しかしフレームラベルpart2へ移動するにどのように記述したらよいかわかりません。 MovieClip(parent).mc2.gotoAndStop("main2"); としてもやはりmc2が未定義なので無理なのでしょうか? もしそうでしたらmain1の段階で定義しようかと思うのですが,その場合はどのように記述すればよいのでしょうか? つまり,メインタイムライン上における後ろのフレームラベルの子のフレームラベルに移動したいです。 説明がうまくできないので図も載せます。 http://www1.axfc.net/uploader/Img/so/99986 よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • もう少しでは無いかと思うのですが・・・(長文です)

    初めまして この度Flash8で仕事を始めて行っており、 本などを拝見しながら少しずつは前進しておりましたが とうとう解らなくなり、こちらへの投稿となりました。 ****************************************************** ・現在行っている作業内容をご説明いたします。 画像が3枚・ボタンが「進む」「戻る」1つずつ ボタンを押下した際に画像が切り替わります。 画像名:1枚目「weddingA_mc」 2枚目「weddingB_mc」 3枚目「weddingC_mc」 ボタン名:「next_btn」「back_btn」 ・例えば「next_btn」を押した時に 「weddingA_mc」から「weddingB_mc」へ切り替わります。 その際に単純に画像が切り替わるのでは無く だんだん透明になって行き次の画像に変わると言う事 をしたいのですが・・・(アルファ値を35に設定してます。) ******************************************************** メインのタイムラインに記述しておりますActionScriptです。 var target_mc:MovieClip = weddingA_mc; terget_mc.stop(); var loop:boolean = true; var naviObj:NaviFrame = new NaviFrame(terget_mc, loop); next_btn.onPress = function() { naviObj.next(); }; back_btn.onPress = function() { naviObj.back(); }; ********************************************************** 次に本を参考にしたのですがカスタムクラスのNaviFrameクラス を書きました。 ActionScriptファイルを作り、先ほどのムービーファイルと 同じ階層に保存しました。 下記がそのActionScriptです。 class NaviFrame { var mc:MovieClip; var loop:Boolean; } //コンストラクタ function NaviFrame(target_mc:MovieClip,loopMode:Boolean) { mc= target_mc;  loop = loopMode; } // //次のフレームへ移動する function next() { if(mc.currentframe == mc._totalframes) { //ループするなら先頭のフレームへ戻る if (loop) { mc.gotoAndStop(1); } }else{ //次のフレームへ移動して止まる mc.nextFrame(); } } //手前のフレームへ移動 function back() {   if (mc._currentframe == 1) {     //ループするならば最終フレームへ戻る     if (loop) {       mc.gotoAndStop(mc._totalframe) ; }   }else{ //手前のフレームへ移動して止まる   mc.backFrame(); } } こちらを動かしてもぐるぐるループするだけで 何も動かず延々回っている状態です。 どなたかご意見・ご指南いただければと思っております 何卒、宜しくお願いいたします。

    • ベストアンサー
    • Flash
  • ActionSprictについての質問です。

    ActionSprictについての質問です。 ステージ上にある丸いボタンをマウスオーバーすると、ボタンから吹き出しが出て、その吹き出しの中にいくつかのボタンがあり、選ぶ事が出来る・・・というのを作っているのですが、どうにもうまくいきません。 まず初期ボタンをムービークリップで制作し mc_btn とし、 吹き出しも同じく mc_hukidashi 、 その中に入れ子で吹き出し内にさらに別のボタンを mc_btn1/mc_btn2・・・として、 mc_btnのフレームアクションで内部のパーツを操ろうとしているのですが、 吹き出しをだしてmc_btn1を触ると、mc_btnのRollOver状態が解除されてしまい、mc_hukidashiごと消えて(mc_btnの最初のフレームに戻って)しまいます。 根本的に作り方が間違っているんでしょうか・・・? 乱文で申し訳ありませんが、 どなたか、お教えいただけると助かります。

  • as3.0でのフレーム移動制御のスクリプト

    当方、FLASH cs4、as3.0で製作をしております、まだ初心者です。 以下のタイムラインを動作させようとしているのですが、どうにも行き詰まってしまいこちらに参りました。 どなたかご教授頂けないかと願っております。 どうぞ宜しくお願い致します。 flaステージ上に(A_btn)、(B_btn)、(C_btn)、(D_btn)、(C_btn)という5個のボタンインスタンスを配置しています。 オープニングと同時にA_mcの前半を再生してA_stopラベルのフレームで停止します。 (9フレーム目のasには stop(); 記述済み) その状態で(C_btn)や(D_btn)をクリックした時に、A_stopラベルのフレームからA_closeラベルのフレームに移動して A_mcの後半を再生して、A_mcが終了する(17フレーム目)と同時にB_mcを飛び越えてC_startやD_startラベルのフレームに移動しムービーを再生するには、どのフレームにどんなラベルを追加したり、スクリプトを記述すれば良いか具体的にお教え願えませんでしょうか。 同様にB_mcからC、Dを飛び越えてE_mcに移動したり、E_mcからAやBにも移動させたいです。 また、上記はタイムラインアニメですが各々のmcをswfとしてロードする場合も合わせてご教授頂けると幸いです。

  • メインフレームの中に入れ子でフレームページ

    メニューをクリックするとメインフレームの中に、更にフレームのページを入れるような場合、 最初のメインメニューでクリックした時は、中に入れ子のように上手く表示されてるのですが その入れ子の中のフレームの左のメニューをクリックすると 二つメインフレームが存在してしまうせいか、入れ子の中のメインではなく TOPのメインフレームに覆いかぶさるように用事されてしまい 入れ子の中のメニューが無くなってしまい困っています。 ※入れ子の中でparentのように表示されてしまいます。 TOPのフレーム(右メインメニューフレームとメインフレーム)表示も残しつつ、 入れ子の中の(右サブメニューとメインフレーム)表示も残すのはどうしたらできるのでしょうか? 教えてくださいm(__)m

  • 特定のmcのフレームにきたときメインタイムライン制御

    AS初心者です。 今、メインタイムラインに配置したmc"main_mc"内のmc”mc1”の、 特定のフレームに来たとき メインタイムラインのフレーム移動をする、というスクリプトを書きたいのですが うまい行かずに困っています。 mc"mC1"のフレームアクションに _root.gotoAndPlay(20); と書きましたが、うまくいきません。 なんででんしょうか。。 もしお分かりのかたがいたらお教えいただけると幸いです 初歩的質問ですみません。。。 mac macbook os 10.4.11 flash cs4を使用しています。

  • _alphaで消えません。。。。

    質問です。(FLASH8です) メインのタイムラインのムービークリップword_mcの中にactionscript、this.loadVariables("food1.txt");で 同じタイムラインのダイナミックテキストに呼び出しています。 メインのタイムラインにあるムービークリップword_mcに onClipEvent(enterFrame){ this._aplha=0; } と記述したのですが中の文字が消えません。 どなたかよろしければ教えてください。

    • ベストアンサー
    • Flash
  • メインのタイムラインに戻るボタン

    同じような質問を幾つかあたってみたのですが上手くいかなかったので質問させていただきます。 FLASH8でFLASHを作成しています。 メインになるタイムライン上にムービークリップでウィンドウを作りました。 更にその中(ドラッグした時に一緒に動かす為、入れ子にしている)に、ウィンドウを閉じる為のボタンを作りました。 ウィンドウを閉じた状態にする為には、メインのタイムラインにある "main"というフレーム名の場所に戻らなければならないのですが、ボタンが反応せずウィンドウを閉じる事が出来ません。 現在ボタンには on (release) { _root.gotoAndStop("main"); } このアクションスクリプトを記述しています。

    • ベストアンサー
    • Flash