FlashLite1.1でタイプライター風のFlashを作成する方法

このQ&Aのポイント
  • Flash勉強中の者ですが、FlashLite1.1で1文字ずつ文字を表示するタイプライター風のFlashを作成しました。しかし、3フレーム構成になっていて、1フレームで収める方法が知りたいです。
  • FlashLite1.1ではsetIntervalやタイマーが使えないため、上記の方法に苦肉の策をとりましたが、他にも1フレームで収める方法があるか知りたいです。
  • フラッシュに関する情報はたくさんありますが、FlashLite1.1でタイプライター風のFlashを作成した例はあまり見かけないので、皆さんは1.1を避けているのでしょうか。
回答を見る
  • ベストアンサー

FlashLite1.1 タイプライター風Flash

こんにちは。Flash勉強中の者です。 FlashLite1.1で1文字ずつ文字を表示するFlashを作成しました。 1フレーム目(初期化) str="こんにちは"; num=0; 2フレーム目 num++; if (num<=length(str)){ sample=sample add substring(str,num,1); }else{ stop(); } 3フレーム目 gotoAndPlay(2); 3フレーム構成になっているこのFlashですが,なんとか1フレームで収めることはできないでしょうか? Lite1.1ですのでsetIntervalやタイマーが使えなくて,上記の策も苦肉で対応しました。 タイプライターに関する記述はネットにたくさんありますがLite1.1でできたという例を見たことがありません。 みなさんは1.1は避けてらっしゃるんでしょうか。。。

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

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

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

_root(シーン 1 などメインのタイムライン)を使わず, ムービークリップ内にそういうものを作成すれば良いのではないでしょうか。 _rootのフレームは1フレームで済みますよ。 それが Flash Lite 1.x でのオーソドックスなやりかたです。 そのようなムービークリップ内の構造を作らなくて済むように発展してできたスクリプトが Flash 5 以降の ムービークリップ 自体に書く onClipEvent (enterFrame) {} です。 さらにそれが発展してできたのが Flash MX 以降の フレームに書く MovieClip.onEnterFrame = function() {}; です。 何にしても,  まずムービークリップがあって  そのムービークリップのタイムラインをループ再生させる というのが基本原理です。 つまり,書かれていらっしゃるようなスクリプトを ムービークリップ 内に作成して色々動作させるというのが EnterFrame系の原型です。 ActionScript 3.0 にも Event.ENTER_FRAME があります。 MovieClipクラス から イベント にひき渡されましたが, 根本的なものは ムービークリップ のグルグルループ再生です。 _root も ムービークリップ の一種ですから, 当然 _root のグルグルループ再生 をさせても良いのですが, それだと他のことができなくなってしまうので, 基本的には _root ではない ムービークリップ の グルグルループ再生 を使います。 場合によっては, tellTarget や setProperty と組み合わせて 階層超え をさせます。 > みなさんは1.1は避けてらっしゃるんでしょうか。。。 避けているというよりも普通はしないのでしょう。 1 需要が少ない(また Flash の機能のごく一部に過ぎない) 2 説明が大変(四苦八苦してダサく見える技を公開する?) 3 趣味ではなく部署やプロジェクトの仕事として作られる方が多い 4 昔から Flash をしている人には1.1に特化したサイトなど必要ない そんなところだと思います。 1の「需要」に関しては, Flash Lite 解説サイトがないのではなくて, そもそも普通のネット上で携帯用 Flash など見ないということです。 また,Flash 分野の中のほんの一分野に過ぎません。 ほんの一分野なのですから,当然他の分野のことより情報は少なくなります。 喩え:「理科」>>「生物」>>「遺伝学」 のようなもの。     「衣服」>>「和服」>>「西陣織」 のようなもの。     「食事処」>>「ラーメン」>>「尾道ラーメン」 のようなもの。 3の「仕事」に関しては, Flash に限った話ではなく,どんな方でも, 日常の自分の仕事の専門的内容をいちいちネット上に公開しないでしょうということです。 公開されている方は主に趣味でされている方です。 またプロでも本や学校などを宣伝するためにサイトを作られてる方が大半です。

yashimaru
質問者

お礼

色々と教えていただきありがとうございました。 無事作成する事ができました。(趣味の範囲でやっていましたのでかなり時間がかかりましたが。。。)

関連するQ&A

  • FlashLite4.0について

    いつもお世話になっております。 FlashLite4.0についてお聞きしたく存じます。 以下のようにFlashLite4.0でコードを書き勉強中です。 (Flashも始めたばかりなのですが。) example.fla(アクションフレーム) -------------------------------------------------- stop(); import com.Example; var example:Example = new Example; com/Example.as -------------------------------------------------- package com {  import flash.display.Sprite;  public class Sample08 extends Sprite {   public function Sample08() {    init();   }   protected function init():void {    var time:Time = new Time;    addChild(timeView);   }  } } com/Time.as -------------------------------------------------- package com {  import flash.display.MovieClip;  public class TimeView extends MovieClip {   public function Time() {    // これが出力されると思っております。    trace("time");   }  } } パブリッシュをすると「time」が出力されると考えていたのですが出力されません。 また、flashLite4.0で動的にテキストを出力するにはどうしたらよろしいでしょうか。 ご教示よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • flashlite1.1の違う階層にある変数の使いかたを教えてください

    flashlite1.1の違う階層にある変数の使いかたを教えてください! flashlite1.1で携帯サイトをつくっています。 変数をルートの1フレーム目に置いたとして、違う階層からその変数はどうやって 使ったらいいのでしょうか。色々やってみましたが上手くいきません… どうしたらいいのが教えてください。 ※変数はフェードインを行うためのアルファの値にしています。 まず始めにルートに aa=30; と書きました。そしてルートに配置しているムービークリップの中のレイヤーの1フレーム目に _alpha=0; 2フレーム目に tellTarget("../"){ trace(aa); } _alpha+=aa; 3フレーム目に gotoAndPlay(2); と書きました。トレースの値は30が出力されます。なのに画面は真っ白なままです。 2フレーム目に書いた _alpha+=aa; の「aa」の部分に30という文字を入れたら、フェードインができます。 これは変数の数値をトレースできても、使い方が間違えている、ということなのでしょうか…? とても困っています。 おわかりになる方、教えてください!!!

  • flashliteでランダム(シャッフル)を作りたい。

    いつもお世話になります。今回ご質問させて頂く内容はFlashlite1.0で、1~10までの数字をランダムかつ同じ数字がかぶらないように表示する方法(シャッフル)です。Flashlite2.0からは配列が使え、考えればシャッフルする方法もあったのですが、1.0ですと配列が使えない為やり方がわかりません。FlashのASは経験あるのですが、Flashliteの知識や経験があまりなく困っております。どなたかお教え頂けたらと思います。 具体的な内容なのですが、今作ったスクリプトが以下です。iという文字にsetを使い擬似配列(?)を組みarray0~array9という変数をランダムな数字で表すといったスクリプトを組んだのですが、これだとランダムなので同じ数字が何回も出てきてしまいます。これを同じ数字は省いてダブる数字が無いようにしたいと思っています。 ▼スクリプト▼ num = 10; for(i = 0;i < num;i++){ set("array" add i,random(10)); } // 確認用 trace(array0); trace(array1); trace(array2); trace(array3); trace(array4); trace(array5); trace(array6); trace(array7); trace(array8); trace(array9); お手数お掛けして申し訳ありません。どなたかお教え頂ける方がいらっしゃいましたらよろしく御願い致します。 制作環境はAdobe Flash CS3です。

    • ベストアンサー
    • Flash
  • FLASH CS5でnow loadingでランダム再生を読み込みたい

    FLASH CS5でnow loadingでランダム再生を読み込みたい FLASH CS5で10枚の画像(表示されいるのは1枚で、左右に隣の画像が少し見える感じ)があり、その下に右、左のボタンがありを押していくと、画像が切り替わっていくアニメなのですが 開始のフレームをアクセスする度に変わるランダムにしたいです。(開始の画像が入るたびに変わる) そのためにnow loadingですべてを読み込ませてからスタートさせないとなのですが、 1フレーム目に以下のタグを入れました。 このやり方だと、エラーがでます。 //再生停止 stop(); //イベントリスナーを登録 //(毎フレーム時間で実行,実行関数 goRnandom) this.addEventListener(Event.ENTER_FRAME,goRnandom); //関数 goRnandom の定義 function goRnandom(evt:Event):void { //変数 per にロードされたパーセントを取得 var per:Number = this.loaderInfo.bytesLoaded / this.loaderInfo.bytesTotal * 100; // //もしロードパーセンテージが 100 に達すれば if (per >= 100) { //登録したイベントリスナーを削除 this.removeEventListener(Event.ENTER_FRAME, goRnandom); //変数 rnd_num に 0以上1未満 のランダムな数を代入 var rnd_num:Number = Math.random(); if (rnd_num < 10 / 100) { gotoAndPlay(2); } else if (rnd_num < 10/100) { gotoAndPlay(8); } else if (rnd_num < 10/100) { gotoAndPlay(14); } else if (rnd_num < 10/100) { gotoAndPlay(20); } else if (rnd_num < 10/100) { gotoAndPlay(26); } else if (rnd_num < 10/100) { gotoAndPlay(32); } else if (rnd_num < 10/100) { gotoAndPlay(38); } else if (rnd_num < 10/100) { gotoAndPlay(44); } else if (rnd_num < 10/100) { gotoAndPlay(50); } else { gotoAndPlay(57); } } } どこか間違っている箇所はあるのでしょうか? 教えてください。

    • ベストアンサー
    • Flash
  • Flash Lite1.1でActionScriptを使用してのフェードイン・フェードアウトについて

    こんにちは。 ActionScript初心者です。Flash Lite1.1でActionScriptを使用してのフェードイン・フェードアウトについて教えて下さい。 FlashLiteではonClipEventが使えないそうだったので ムービークリップ内の1フレーム目に _alpha=0; 2フレーム以降毎に _alpha+=10; と記述すればフェードイン出来ましたが、もっとスマートにやる方法があれば教えていただけますでしょうか。 以上よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • javaの問題です。

    現在以下のようにプログラムを書いてみました。 public class Replace { public static void main(String[] args) { String str = args[0]; int num = str.indexOf(args[1]); while (num != -1){ str = ( str.substring(0, num) + args[2] + str.substring(num + args[1].length()) ); num = str.indexOf(args[1]); } System.out.println(str); } } 第一引数に第二引数が含まれていれば、それを第三引数に置換する、というものです。 上記にて第二引数が単体ならば動作するのですが、たとえば 第一引数:ABCBA 第二引数:AB 第三引数:C という風に第二引数を複数にすると、 結果がCCBAと後半のBAが変換されなくなってしまいました。 後半部分もAとBが含まれる、ということで、同じように変換出来るようにしたいのですがどのようにすればよいのでしょうか?;; どうぞよろしくお願いいたします;;

    • ベストアンサー
    • Java
  • javaの質問です。

    JAVAの質問です。 (replaceを使わない置換) java あいういあ あ !! > !!いうい!! 上のように、引数1に引数2の文字が含まれていればその文字を引数3に置き換えるという問題を解いているのですが、思うようにいきません。引数2が1文字なら簡単なのですが、2文字・3文字の場合が全く分かりません。また、replace系も使うことはできません(replacefirstなど)。 コード例を挙げて頂けないでしょうか? 丸投げなのは重々承知しておりますが、どうかよろしくお願い致します。 class Replace{   public static void main(String args[]){     String str=args[0];     int num = str.indexOf(args[1]);     while(num != -1){       str=(str.substring(0,num)+args[2]+str.substring(num+1));       System.out.print(str);     }     System.out.println();    } } 一応こんな感じかな?と思ってコードを作ってはいるのですが、結果としては散々です。。。

    • ベストアンサー
    • Java
  • Flash lite 1.1で待受け作成

    Flash lite1.1で、 デジタル時計(HH:MM)のついた待受けを作りたいと思っています。 仕様としては背景で5枚の画像を1分ごとにループさせて、 画像ごとにデジタル時計を表示させる位置を変えたいと思っています。 (1枚目の画像の時はセンターに、2枚目の画像の時は下部に、という感じ) 現在、下記のような方法で書こうと思って作り始めたのですが 躓いてしまいましたので宜しければご助言をお願いいたします。 まず時計部分については、 ステージ直下に空のMC「myTime」を作って 表示用のレイヤーにダイナミックテキストを配置し、 変数 v_time をセットしました。 で、action用レイヤーに ---------- 1フレーム ---------- call("func"); gotoAndPlay(2); ---------- 2フレーム ---------- call("func"); ---------- 3フレーム ---------- gotoAndPlay(2); ---------- 4フレーム ---------- ●ラベル「func」 nowHour = fscommand2("GetTimeHours"); nowMin = fscommand2("GetTimeMinutes"); //10未満なら頭に0をつける if (v_hour<10) { v_hour = "0" add v_hour; } if (v_minutes<10) { v_minutes = "0" add v_minutes; v_time = nowHour add ":" add nowMin; と、書きました。 これで時計の表示だけはうまくいきました。 これとは別に、ステージ直下に画像表示用のムービークリップ 「myImage」を作り、1~5フレームに各画像を配置しました。 …と、ここまで自力で調べながらやってみたのですが この先がわからず困っています。 イメージとしては ・nowMin の値から myImage のフレーム位置を移動 また同様に ・nowMin の値から myTime のx,y座標を変更 という感じかな?と思っているのですが、 どのように書けばよいでしょうか? また、他に効率の良いやり方がありましたらご教授頂けませんでしょうか? 宜しくお願いいたします。

    • ベストアンサー
    • Flash
  • FLASH1→PHP→FLASH2 POST送信での受け取り方法。

    FLASH 8の初心者です。 Sample.swfにあるボタンから、PHPを通してSample2.swfに値を送ろうとしています。そこで、送った値を判定して、そのフレームに移動するようにしたいと思っています。 現在はFLASH→PHP→FLASHというのはできるのですが、FLASH1→PHP→FLASH2という方法がわかりません。 ■Sample.swfのボタン A.onPress = function() { SendData = new LoadVars(); //データを送信するための箱。 _root.SendData.nakami1 = "sam"; //送りたいデータを箱に詰める //データ(中身)を詰めた箱をgetFlash.phpに送信 _root.SendData.sendAndLoad("http://localhost/Sample/Sample.php", _root.SendData); //3)getFlashからレスポンスが合った場合(SendDataにデータが帰ってきた時) _root.SendData.onLoad = function() { //受け取ったときの処理 if(this.val){    if(this.val1){ gotoAndPlay(2); } } } } これで、PHPに値を送っています。 <?php //2)Flashからデータを受け取る-Flashで使用した変数名 $test1 = $_POST["nakami1"]; //やりたい処理を書く if($test1 == "sam"){ $test1 = "name"; }else{ $test1 = "error"; } //Flashにデータを送る print "&val=true"; //上の結果を表示の実行。 print "&val1=".$test1; //val1に$test1の値を代入。 ?> この書き方でFLASH→PHP→FLASHはできるのですが、これをどのように変更したらFLASH2へ値を送れるのかわかりません。調べてもどのようにすればいいのかわからないので困っています。 FLASH2のほうではsetInterval文を使って、常にPHPからの送られてくる値を取得しようと思っています。 ★setInterval文 functionvar intervalID:Number=setInterval(getFunc,1000); getFunc(){ getURL("http://localhost/test/Sample.php", "_self", "GET"); if(val== "name"){ gotoAndpPay(2); } } このように書いたのですがどのようにすればPHPからの値を取得できるのかわかりません。このような書き方をしなくてもできるのでしょうか? どんなことでもいいので返事をよろしくお願いします・・・。

  • シンボルからシーン上の呼び出し方

    Flash lite1.1で、シンボルの最期のコマでシーン1のフレームの呼び出しをしたいと思いますが、可能でしょうか? 単純にシンボルの最期に gotoAndPlay('../[シーン1のフレーム名])); と書けばいいのかなと思ったのですが、動作しません。 ご教授いただければと思います。

    • ベストアンサー
    • Flash

専門家に質問してみよう