[PR] WEB制作会社PSYCOMMU

as3

AS3 タイムベースのアニメーション

以前ゲームコンテンツを作成した時にフレームベースのアニメーションにしていたためユーザーのPCのスペックに依存していて意図したスピードにならなかったのでその解決策。

タイムベースのアニメーション。
ユーザーのPCのスペックに依存せずにアニメーションさせることができます。
てゆーか普段はTweenerなどを使用してばかりなのでENTER_FRAMEイベントも書かない時が多いご時世・・・

使用するのはENTER_FRAMEとgetTimer();

getTimerを一度呼び出し、その値を保存。再び呼び出して2つの差を出す。
その値を見ることで時間の経過をミリ秒単位で知ることができる。

詳しい記述は時間ができたときに

下記のコードでどの環境のPCでも同じスピードが出ます。
ゲーム作成時に重宝。

【サンプルswf】

as3

AS3 papervision3dで等倍表示

いまさらですがよく昔のファイルを引っ張り出すのでメモ。

_camera = new Camera3D();
_camera.zoom = 11;
_camera.focus = 100;
_camera.z = -1100;

上記がミソ。
なんかよく分からないが魔法の公式という事で丸暗記。

【サンプルswf】

as3

AS3 読み込んだ子swfにアクセス 読み込んだ子swfから親swfにアクセス

なにかとswfは外部化する事が多いのでこのテクニックがないとどうにもならないのでメモ。

子swfにアクセスするときのポイントは一つ、
読み込まれた子swfのrootがLoaderクラスのcontentプロパティに格納されるということ。
これさえ肝に銘じていれば大丈夫。

子swfにアクセスから親swfにアクセスする時のポイントも一つ。 parentで階層を上りrootを指定するけれど最初のparentはLoaderクラスになるのでroot(子swfのroot).parent.parentという様に二つ階層を上れば大丈夫。

as3

AS3 配列の中身がobject型の時 objectの値をもとにsortOnする

配列の中身をある値を元に並べ替えたい時などに使用

使いどころは例えば3DなどでZソートの時などその他もろもろ使えます。

配列.sortOn("値", Array.CASEINSENSITIVE | Array.NUMERIC);
一行でいけます。便利。

  • Array.CASEINSENSITIVE(昇順)
  • Array.DESCENDING(降順)

trace

きちんと並べ替えられています。good!

as3

AS3 TextFieldにalphaをかける方法

TextFieldが入っているspriteなどの表示オブジェクトにalphaをかけようとしてもTextFieldだけalphaがかかってくれません。

解決策として二つ。

  • TextFieldにfilterを適応させる(TextFieldが入っている表示オブジェクトでも可)
  • 思い切ってbitmap化する

それぞれメリット・デメリットがあります。
1つ目の方法はTextFieldのままなのでぜんぜん問題ありません。
しかしtweenerなどで動かすとピクリます。なんか動きががくがくします。
2つ目の方法はbitmap化してしまっているのでTextFieldではすでにないのでhtmlTextなどができないのでリンクを張ることなど出来なくなります。
その代わりbitmap化していることにより動かしてもピクリません。これはでかい・・

ケースバイケースで使い分けたら一番よいかと・・

【サンプルswf】

上から順に
ノーマルなTextField
filterを適応させたTextField
bitmap化したTextFieldになります。

とくに3つ目はbitmapなのでマウスカーソルをのせてもカーソルが変わりません。

Copyright 2009 PANDAMA. All rights reserved.
PANDAMA.com 掲載の記事・写真・図表など無断転載を禁止します。著作権はPANDAMA.comに属します。