ActionScript3.0 | memo-memo Skip to content

memo-memo

web制作に便利そうな情報をメモるブログ

Archive

Tag: ActionScript3.0

よく見かける、flashのローディング画面。

手っ取り早くローディングする方法が見つかったので、メモ。

if(loaderInfo.bytesLoaded >=loaderInfo.bytesTotal){
 gotoAndPlay(xxxx);//コンテンツの開始のフレームを入れる。
 }else{
 gotoAndPlay(1);
 }

上記のコードを、使うと実装出来た。

使い方は、とっても簡単で、

例えば、ローディング画面を24f分使ってループさせたい場合、上記コードを25fに記述して26fから、コンテンツスタートとする。(xxxに26と書く)

そうすれば、頭の24f(ローディング画面)が終わって、25fに達したとき、if分が処理されて、ローディングが終わっていたときは、26f(コンテンツスタート部分)に飛んで、ローディングが終わっていない時は、1fに戻る。

とりあえず、簡単に実装出来るので、キービジュアルとかに使う様な、簡単なflashに付ける分には、とっても便利。

もう少し、別の方法も、調べたら一杯出てきたので、追々試してみよう。

flashは、あんまり土台がしっかりしてないから、googleで調べて作るのは大変だなぁ。

がんばって勉強しよう★

総ミリ秒が格納されている変数nTimeを、1000で割った余りがミリ秒になり、nTimeを1000で割った整数分を、もう一度nTimeに格納し直す。
次に、nTimeを60で割った余りが秒になり、nTimeを60で割った整数分を、もう一度nTimeに格納し直す。
次に、nTimeを60で割った余りが分になり、nTimeを60で割った整数分が、時になる。
言葉で記述するのは、ちょっと難しいので、下記コード参照

var nTime = 45296789;//総ミリ秒
var milliseconds = nTime % 1000;
nTime = Math.floor(nTime / 1000);
var seconds = nTime % 60;
nTime = Math.floor(nTime / 60);
var minutes = nTime % 60;
var hours = Math.floor(nTime / 60);

こんな感じ。後は、milliseconds、seconds、minutes、hoursに格納した値を整形すれば良し。
この考え方は、汎用的に色々なスクリプトで応用出来そうな気がする。

どうやら、Actionscript3.0では、関数を変数に代入出来るらしい。変数に、Function型が存在するらしい。

また、関数を代入した変数は、関数の識別子と同じ様に使えるらしい。

//ここで、Function型の変数abcにtestを代入
var abc:Function = test;
//ここで、関数testの内容を記述
function test(){
trace("ファンクションテスト")
}
//関数を代入した変数abcを関数の識別子的に実行
abc();

上記を実行すると、ちゃんと、「ファンクションテスト」がtraceされた。

もちろん、test();と、関数を直接実行しても同じ様に「ファンクションテスト」がtraceされた。

こんな使い方が出来るらしい。

自分で上記の様なスクリプトを書くかどうかは別にして、サンプルとかの解析をする時に、上記の様に書いてあるかもしれないので、一応メモ。

ちなみに、javascriptはどうなんだろう?同じ様に、動くのかどうか、後で調べよう。

いまいちピンときていないのだけれど、とりあえず解った事だけメモ。

メインタイムラインから、クラスを呼び出して、クラスのプロパティ、もしくはメソッドを呼び出す際は、

var hoge:MyClass = new MyClass();
trace(hoge.propa);
trace(hoge.metho());

何となく上記な感じ。
で、このMyClassは、

package{
	public class MyClass{
		public var propa = "hello";
		public function MyClass(){
			trace ("abc");
		}
		public function metho(){
			var test = "HelloWorld";
			return test;
		}
	}
}

こんな感じになっているとする。

メインタイムラインの一行目の、var hoge:MyClass = new MyClass();と、呼び出したら、クラスの青字の部分の処理が実行された。様は、文字列abcがtraceされた。

メインタイムラインの二行目の、trace(hoge.propa);は、クラスの赤字のプロパティが呼び出された。helloをtraceした。

メインタイムラインの三行目の、trace(hoge.metho());は、クラスの緑字のプロパティが呼び出された。HelloWorldとtraceした。

いまいち挙動が把握しにくくて、四苦八苦です。

上記の様な、簡単なもので、なんども練習しよう。

まだまだ、基本的な所だけど、とりあえずメモ。
まず、ActionScript3.0で、クラスを定義する為には、新規ファイルで、「ActionScript(AS)ファイル」を選択する。
そうすると、真っ白のテキストエディターみたいなファイルが作成されるので、そこにクラスを書いていく。
書き終わったら、flaファイルと同じフォルダに入れて、flaから、呼び出す。
基本的な構文は、

package{
    public class MyClass{
        function MyClass(){
        //ここに処理
        }
    }
}

上記のような感じ。publicが無いと、flaから呼び出せないので注意。他にも、privateとか、いくつか属性と呼ばれるものがあるらしいけど、その辺は追々。publicって、phpの本を読んだ時も出てきたなぁ。
で、flaからは下記の様に呼び出す。

var myObject:MyClass = new MyClass();
trace(myObject);  //出力:[object:MyClass]

とりあえず、メモ。