Tips
知っているのと知らないのとでは、一味違う。そんなスクリプト系Tipsを集めました。
-
Adobe Developer ConnectionにKeith Gladstien氏が「Flashのパフォーマンスの最適化」という記事を寄稿されました。その中で「Flashでは、最も実行速度の速いループは逆forループです」と書かれています。ループ処理のカウンタ変数を加算するか減算するかの違いは、本F-siteの記事でも何度か比べてきました。そこで、改めて
for
ループについて少し考えてみます。2013.01.08 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
[AS3] StarlingフレームワークのTweenとJuggler APIがアップデートされる
Starling Forumに「Tween & Juggler API Updates」という記事が投稿されました。StarlingフレームワークのTweenとJugglerに新たな機能が加わったとのことです。
2012.10.19 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
Flash Professional CS6から書出したスプライトシートはどう使うのか
Flash Professional CS6から、[ライブラリ]のシンボルをスプライトシートとして書出せるようになりました。先日の7月28日土曜日に開かれたF-siteセミナーでは、その具体的なやり方が説明されました(図001)。その開催後に集めたアンケートに、疑問な点としてスプライトシートの使い方を挙げた方が数名いらっしゃいました。
2012.08.11 | 野中 文雄 | [AS 3][ActionScript][CreateJS][Tips][野中ゼミ]
コメント (0) -
最近、Starlingフレームワークにおける衝突検出(Collision Detection)が扱われた学習用の英語ビデオ「Starting with Starling ー Ep 8: Collision Detection」を観ました。インスタンス同士の重なりを調べる、いくつかのやり方が紹介されています(図001)。それらをざっと眺めてみましょう。
図001■Starlingフレームワークで衝突を検出するやり方
*「Starting with Starling ー Ep 8: Collision Detection」より引用2012.07.03 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
[AS3] StarlingフレームワークのDisplayObject.hitTest()メソッド
Starlingフレームワークには当たり判定のメソッドとして、DisplayObject.hitTest()が定められています。ただし、ActionScript 3.0定義済みのメソッドと細かな点に違いがあります。
2012.06.25 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
[AS3] Starling Wikiで紹介されたActionScript 3.0最適化のコツ
Starling Wikiに「Performance Optimization」(パフォーマンスの最適化)という記事が掲載されました。記事の最後の項目は「ActionScript Tips」と題して、StarlingフレームワークにかぎらないActionScript 3.0の最適化のコツを解説しています。それらをご紹介しながら、コメントを加えてみます。
2012.06.16 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
[AS3] Starlingフレームワークを最適化するSpriteオブジェクトのフラット化とQuadBatchクラス
Starlingフレームワークで子インスタンスをもてるオブジェクトとしては、Spriteがもっぱら使われます。その子オブジェクトの見た目がしばらく変わらないときは、Sprite.flatten()メソッドを呼出すと描画が最適化されます。その描画を速めるために、おもに内部的に用いられるのがQuadBatchクラスです。Starling Wiki「Performance Optimization」に解説されていた内容から、ふたつの項目を採上げてご紹介します。
2012.06.10 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
-
[AS3] ADC OnAir第2回「Stage3Dを学ぼう!Flashで2Dコンテンツ」
2012年5月23日水曜日20:30から配信したADC OnAir第2回は、Flash Player 11から備わったStage3Dを使うフレームワークStarlingとFlash Professional CS6と連携してコンテンツをHTML5対応で書出す[Toolkit for CreateJS]についてご説明しました。それらの解説記事がADCなどに公開されましたので、ご紹介します。
2012.06.04 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
[AS3] Starlingフレームワークのスクリプトをフレームアクションに書いてみる
Stage3DはFlashのステージの背面にコンテンツを描きます(図001)。ですから、描画やアニメーションの処理は、Flashのフレームアクションではなく、クラスとして定義する方が扱いやすいといえます。Starlingフレームワークではそれだけでなく、フレームアクションに書こうとすると面倒なことになります。試みにご紹介しましょう。
図001■Stage3D(Starling)とFlashのステージの関係
2012.05.29 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
[AS3] StarlingフレームワークにEventDispatcher.dispatchEventWith()メソッドが加わる
開発が進んでいるStarlingフレームワークの新しいバージョンに、EventDispatcher.dispatchEventWith()メソッドが加わる予定のようです。開発者のDaniel Sperl氏より、Starling Forumにイベントシステム整備の提案として投稿されました。このメソッドは、EventDispatcher.dispatchEvent()と同じく、イベントを配信します。では、どこが違うのか、氏の投稿記事に沿って見てみましょう。
2012.05.23 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
[AS3] 45度回転した矩形領域に対するクリック座標の判定
2012年2月28日に催された「ADC MEETUP Round 04 Social Gaming」で、中野亘氏のつくられたパズルゲーム「ワクチンケース」の中でタッチされた座標を、45度傾けた格子で調べられたらというアイデアが出されました(図001)。これをお題として頂戴します。
図001■45度傾けた格子で座標を調べる
2012.03.04 | 野中 文雄 | [AS 3][ActionScript][Tips][サンプル][野中ゼミ]
コメント (0) -
「Starling」は、Flash Player 11の新しい描画機能「Stage3D」にもとづいてつくられた2次元の描画用フレームワークです。Flash Professional CS5.5でStarlingフレームワークを使ってみたい方のために、いくつか解説を書き始めました。これまでのまとめをご紹介します。詳しくは、それぞれの記事をお読みください。
2012.01.25 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (6) -
[AS3] Text Layout Framework(TLF)で悩みがちなこと
TLFテキストやText Layout Frameworkのコンポーネントライブラリを使うと、不思議な結果に出逢うことがあります。しかも、Flash Playerのバージョンによって、動きが変わったりします。その中のからいくつか解明できたことをご紹介します。
2012.01.04 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (1) -
[AS3] 間違いだらけ(?)のMatrix3Dクラスのドキュメント
間違いだらけというかは別にして、Matrix3Dクラスのドキュメントには誤っている のかどうかもわかりにくい説明が少なくありません。内容を正しく理解するには、ActionScriptだけでなく、数学の知識も必要になるからです。さらに、日本語訳の問題がややこしさを増します。
2011.12.17 | 野中 文雄 | [AS 3][ActionScript][Tips][バグ][野中ゼミ]
コメント (0) -
Loaderクラスにより外部から読込んだSWFが要らなくなり、メモリから消したいときどのようにしたらよいでしょう。Loader.unload()メソッドを呼出すだけでは足りません。その場合に行うべき処理を確かめます。
2011.10.28 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
[AS3] Flash Player 11でMovieClipクラスに唯一備わったプロパティMovieClip.isPlaying
Flash Player 11でMovieClipクラスにひとつだけ、MovieClip.isPlayingというプロパティが備わりました。
2011.10.09 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
[AS3] Flash Player 11でビットマップのサイズ制限がなくなる
昨日10月4日にAdobeからFlash Player 11が正規公開されました。その機能のひとつとして、ビットマップの大きさにこれまであった制限がなくなりました。
2011.10.05 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
[AS3] BitmapData.setPixel()とBitmapData.setVector()メソッドでピクセルを塗る
[ヘルプ]の[モバイル]/[Flash Platformのパフォーマンスの最適化]/[ActionScript 3.0のパフォーマンス]/[ピクセルの操作]には、メソッドBitmapData.setPixel()とBitmapData.setVector()を用いたピクセル操作の最適化が説明されています。そこでwonderflに投稿したテスト用のコードで、3つのやり方について速さを比べてみました。
2011.10.02 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
[AS3] Flash CS5に潜む謎のクラスWorld II − 内緒の物理エンジン
以前の記事でご紹介した「Flash CS5に潜む謎のクラスWorld」は、非ドキュメントの物理エンジンに含まれているようです。昨年11月に書かれた英文blogに、ライブラリの中身を探った解説がありました。そのblogのテスト用コードをもとに、簡単なサンプルをつくってみました。
2011.09.23 | 野中 文雄 | [AS 3][ActionScript][Tips][サンプル][野中ゼミ]
コメント (0) -
角度からxy座標を定めるには、三角関数が用いられます。具体的には、つぎのふたつの計算の仕方があります。これらふたつの違いと使い方をご紹介します。
-
【角度からxy座標を定める】
- 原点からの距離がrで正のx軸となす角度がθの座標
- 座標(x, y)を原点でθ回転した座標
x座標: r cosθ
y座標: r sinθx座標: x cosθ - y sinθ
y座標: x sinθ + y cosθ2011.09.22 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
[AS3] Dictionaryオブジェクトのキーにプリミティブ値を指定した場合
Dictionaryオブジェクトは、参照をキーとして値が設定できることに特長があります(詳しくは、「Dictionaryクラスを使ってみる」をお読みください)。しかし、プリミティブ値もキーとして使えます。その場合、Dictionaryオブジェクトのキーの扱いが少し違ってくるようです。なお、参照とプリミティブの違いについては、「Stringはプリミティブ値かオブジェクトか」2「ActionScript 3.0の場合」をご参照ください。
2011.09.04 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
ガベージコレクションは、メモリに余裕があるとなかなか発動されません。[ムービープレビュー]などのデバッグ環境とAIRであればSystem.gc()メソッドが使えます。でも、一般のネット環境ではこのメソッドは使えません。そこで、正規サポートはされてはいない裏技をひとつご紹介します。
2011.07.31 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
[AS3] TLFテキストを含むインスタンスがステージの表示リストから除かれるとき
ステージに置いたインスタンスがタイムラインから除かれるときには、DisplayObject.removedFromStageイベント(定数Event.REMOVED_FROM_STAGE)が起こります。ところが、そのインスタンスがTLFテキストを含むと、内部的に初期化が行われるため、一筋縄ではイベントが意図どおりに扱えません。
2011.07.15 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
[AS3] ふたつの数値の最大値・最小値を得るにはMathクラスより条件演算子?:の方が速い
ふたつの数値のうちの最大値または最小値を求めるには、Math.max()とMath.min()メソッドが使われます。けれど、計算の速さが求められる場合には、条件演算子?:を用いて単純に大小比較した方がお得です。
2011.05.20 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
[AS3] 距離はPointやVector3DクラスのメソッドよりMath.sqrt()と三平方の定理で求める方が速い
PointやVector3Dクラスには、座標と座標の間の距離を求める同じ名前の静的メソッドdistance()があります。しかし、速さを稼ぐにはこれらのメソッドでなく、Math.sqrt()メソッドを用いて三平方の定理で導く方がお得です。
2011.04.22 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
[AS3] 配列のインデックスを式で計算したときはuint型で渡す
配列やVectorインスタンスのエレメントを扱うとき、インデックス番号を式で与えることがあります。その場合、配列アクセス演算子[]に式を直接書込むのでなく、uint型に変換(キャスト)するか、式の値はuint型の変数に入れたうえでその変数を渡すようにしましょう。その方が、書く手間は少し増えても、処理が速まります。
2011.02.19 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
[AS3] キーボードのキー操作をVectorオブジェクトで扱う
「キーボードのキー操作を扱うふたつの手法」では、タイムラインに配置したMovieClipインスタンス(my_mc)を、キーボードの矢印キーで上下左右に動かしてみました(再掲図001)。この同じお題をVectorクラスで整えてみましょう。
図001■ タイムラインに配置したMovieClipインスタンスを矢印キーで上下左右に動かす(再掲)
2011.02.14 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
[AS3] Vectorインスタンスには長さを定めた方がよい
Adobeのドキュメント「VectorクラスとArrayクラス」は、Vectorインスタンスには予め長さ(Vector.lengthプロパティ)を定めた方がパフォーマンスはよいと説明します。ただ、日本語の意味がわかりにくいように思われます。
Vectorのサイズが時間よりも先に指定されない場合、Vectorの容量が不足すると、サイズが増えます。Vectorのサイズが増えるたびに、メモリの新しいブロックが割り当てられます。Vectorの最新の内容がメモリの新しいブロックにコピーされます。データを余分に割り当てて複製することにより、パフォーマンスに影響があります。
2011.02.13 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
条件演算子?:の処理は、ifステートメントで書くこともできます。それぞれどのように使い分けたらよいでしょうか。本稿では、処理の速さを比べてみます。
*なお、この記事の英語版はJActionScriptersに載せています。
The English version of this article is posted to JActionScripters.2011.02.09 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
配列つまりArrayインスタンスをつくるには、つぎのふたつの書き方があります。どちらがよいのでしょうか。
var constructed_array:Array = new Array(); var literal_array:Array = [];
どちらにしたところで、大きな違いはありません。けれど、気分によって変えるのはやめましょう。統一はしないと、見にくいです。だとすると、やはりどちらがお得なのかは気にかかります。
2011.01.26 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
3次元空間のオブジェクトをマウスポインタの位置に応じて回すときの考え方です(図001)。Matrix3Dクラスで座標変換する場合、水平方向と垂直方向それぞれについて回転を加える方法がひとつあります。今回はもうひとつのやり方として、水平・垂直合わせてベクトルの外積により回転軸を求めてみます。
図001■四方に置いた面を上下左右に回す
2011.01.22 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
Graphicsクラスの描画メソッドを使うと、Spriteなどのインスタンスに直線が引けます。そこで、頂点座標にしたがって多角形などの閉じた図形が描ける関数を定義してみましょう(図001)。さほど難しいスクリプトではありません。けれど、あえてややこしく書いてしまうことも少なくないようです。そうならないためのちょっとしたコツをご紹介します。
図001■閉じた図形を描く
2011.01.20 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
ふたつの配列を連結するには、Array.concat()メソッドを用います。ところが、Grant Skinner氏がtwitterで面白い手法を紹介していました。JavaScriptについて書かれたものの、ActionScript 3.0でも使えます。
2011.01.12 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
キーの押し下げ操作は、InteractiveObject.keyDownイベント(定数KeyboardEvent.KEY_DOWN)で扱います。リスナー関数が引数に受取るイベントオブジェクト(KeyboardEvent.keyCodeプロパティ)から押したキーのコードがわかりますので、その整数値に応じて処理を振分けます。
定石といえるのは、キーコードの整数値を条件判断で切り分けることです。もっとも、キーコードはすべて値がユニークですので、配列との相性がよいです。処理したいキーコードのインデックスに、必要な情報を納めると、条件判定が要らなくなります。
2010.12.22 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
[AS3] 全角(2バイト)と半角(1バイト)を区別したバイト数の計算
2バイトの全角と1バイトの半角とを区別した文字のバイト数が、どのようにしたら求められるか考えてみましょう。
2010.12.16 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
ハッピーマンデーのように、ある月の何番目の曜日と指定して、日付を求めてみます。おまけに、最後の何曜日と後ろから数えられるようにもしましょう。
2010.12.14 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
[AS3] 文字列の検索・置換は正規表現よりStringクラスのメソッドを使う方が速い
文字列の検索・置換は、String.replace()メソッドに正規表現(RegExpクラス)を使うと簡単です(スクリプト001)。なお、正規表現による文字列の検索・置換については、「正規表現で文字列を扱う」をお読みください。
スクリプト001■String.replace()メソッドと正規表現で文字列を検索・置換var test_str:String = "すもももももももももももいろいろ"; var result_str:String = test_str.replace(/もも/g, "みみ"); trace(result_str); // 出力: すみみみみみみみみみみもいろいろ
もっとも、処理の速さは、Stringクラスのメソッドを組合わせて書いたスクリプトの方が勝るようです。
2010.12.10 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
オブジェクトを異なるデータ型に変換したいとき、一般には「クラス(変換するオブジェクト)」のかたちでキャストします。けれど、as演算子を使う方が処理は速いようです。
2010.12.09 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
スクリプト001■ビットごとの排他的論理和演算子^で変数の整数を入替える
var a:int = 12345; var b:int = 67890; trace(a, b); // 出力: 12345 67890 a = a ^ b; b = a ^ b; a = a ^ b; trace(a, b); // 出力: 67890 12345
2010.12.08 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
12月4日土曜日に開かれたFITC Tokyo 2010で、Mike Chambers氏は「Flashで作成する高性能モバイルコンテンツ」と題するプレゼンテーションをされました。その中で使われたスライドは、多くがすでに公開されているFITC Amsterdam 2010のPDFと共通するようです。
そこで、とくにFlashコンテンツのパフォーマンス向上に関わる部分を、筆者の興味にしたがって若干の加筆・補正も含みつつ抜出してみました。なお、ActionScript 3.0におけるパフォーマンス向上の基本については「ActionScript 3.0におけるパフォーマンス向上のヒント」をご参照ください。
2010.12.05 | 野中 文雄 | [AS 3][Tips][野中ゼミ]
コメント (0) -
[AS3] 連結リストとVectorによるエレメントの追加と削除
「連結リスト」(linked list)はObjectとArrayクラスの中間のような仕組みで、エレメントには順序があるもののインデックス番号をもちません。その処理の速さを、Vectorクラスと比べてみます。
2010.10.12 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (1) -
[AS3] CodeZine「Java と ActionScript 3.0 の違い:文法編」
Adobeの上条晃宏氏がCodeZineに「Java と ActionScript 3.0 の違い:文法編」を書かれました(Flexデベロッパーセンターより再掲)。興味深い記事ですので、ActionScript 3.0について気づいたことを少し付け加えてみます。
2010.10.12 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
[AS3] ラジオボタンのように複数の中のひとつだけ設定値を変える
ラジオボタンは、ひとつを選ぶと他の選択は解除されます(図001)。このように、定められた値を複数の中のつねにひとつにだけ設定する手法について考えてみます。
図001■ラジオボタンはつねにひとつだけしか選択できない
2010.08.03 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
ActionScript 2.0から、変数および関数の引数や戻り値にはデータ型が指定できます。とくに、ActionScript 3.0では、データ型を定めることにより、動作が最適化されます。したがって、変数宣言には必ずデータ型を添えるべきでしょう。加えて、変数には初期値も与えておくのが安心です。
2010.07.31 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
[AS3/CS5] Flash CS5の新機能とPlayerのバージョン
テキストエンジンのTLFテキスト(テキストレイアウトフレームワーク: Text Layout Framework)は、Flash Professional CS5の新機能です。ところが、そのインスタンスを生成・制御するTLFTextFieldクラスについて[ヘルプ]で調べると、「ランタイムバージョン」が「Flash Player 10, AIR 1.5」とされています(図001)。
2010.05.24 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
Flash Professional CS5では、ActionScript 3.0でデータ型の指定をするとimport宣言が自動的に加えられるようになりました(図001)。クラスを定義する場合には、手間が省けて助かります。けれど、フレームアクションでは、ありがたみがわかりにくいかもしれません。
2010.05.22 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
[AS3] DisplayObjectインスタンスの削除とガベージコレクション
MovieClipシンボルのフレームアクションで親のタイムラインからインスタンスを消すには、つぎのようにDisplayObjectContainer.removeChild()メソッドを呼出します[*1][*2]。ただし、このとき気をつけなければならないことがあります。
var parent_mc:MovieClip = MovieClip(parent);
parent_mc.removeChild(this);2010.05.09 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (1) -
Adobeのサイトに公開された「Optimizing Performance for the Flash Platform」の「Miscellaneous optimizations」につぎのような項が示されています。最適化のためには、「whileループでは逆順を使うように」("Use reverse order for while loops")ということです。しかし、その効果は疑わしく思われます。
2010.05.01 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
Flash Professional CS5から、Vectorクラスのインスタンスを生成するときに、エレメントが納められるようになりました。新たなシンタックスは、つぎのとおりです。
new <ベース型>[エレメント0, エレメント1, …, エレメントN, ]
2010.04.15 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
ループ処理では、多くの場合カウンタ変数を使います。その値は、加算するより減算する方が速いと噂されています。
2010.04.12 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
Adobeのサイトに公開された「Optimizing Performance for the Flash Platform」の「Primitive types」の項は、ActionScript 3.0におけるプリミティブ型データについて、とくにメモリ上の扱いを説明しています。細かい話題ではあるものの、メモ代わりにまとめます。
2010.04.12 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
[AS3] Vectorクラス対Arrayクラスの処理速度比較
Adobeのサイトに公開された「Optimizing Performance for the Flash Platform」の「Vector class versus Array class」の項は、Flash Player 10から実装されたVectorクラスとArrayクラス(配列)との処理速度を比べています。
2010.04.07 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
[AS3] DisplayObjectインスタンスの種類と使用メモリ
Adobeのサイトに公開された「Flash Platformのパフォーマンスの最適化」の「表示オブジェクト」の項は、DisplayObjectクラスを継承するShapeとSprite、MovieClipのオブジェクトについて、使用メモリの点から違いを比べています(なお、akihiro kamijo「Flash コンテンツパフォーマンス最適化(メモリ編 1)」参照)。その内容を、簡単にまとめてみましょう。
2010.04.06 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
[ヘルプ]の[Vector3D]クラスで「Vector3D.wプロパティ」の項を読むと、つぎのようなくだりがあります。しかし、これは四元数についての説明ではなさそうです。
四元数表記では、3次元回転の計算の4番目のエレメントとして角度が使用されます。wプロパティを使用すると、Vector3Dオブジェクトの回転角度を定義できます。回転角度と座標(x, y, z)の組み合わせにより、表示オブジェクトの方向が決まります。
2010.04.02 | 野中 文雄 | [AS 3][ActionScript][Tips][バグ][野中ゼミ]
コメント (1) -
Dateインスタンスに月を設定して調べると、なぜか設定した値より1増えてしまうことがあります。
var my_date:Date();
my_date.month = 1;
trace(my_date.month); // 出力は2となることがある2010.03.31 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
演算子asとisは、つぎのような同じシンタックスで使われます。
インスタンス 演算子 クラス
[ヘルプ]でそれぞれの演算子を調べると、asはインスタンスがクラスの「メンバーであるかどうかを評価」し、isはインスタンスがクラスと「互換性があるかどうかを評価」すると説明されています。要するに何をするのか、これだけではわかりません。
しかし、それぞれの「結果」が異なりますので、使い途もまた違います。演算子asはデータの評価換えに用いられ、isは誰の子かを調べます。
2010.03.05 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
Dictionaryクラスは、独自のメソッドとしてコンストラクタしか備えていません(「Dictionary()コンストラクタ」参照)。クラスの説明を読んでも、使い方はもちろん、その意味さえわかりにくいようです。
2009.12.04 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
[AS3] TextAreaコンポーネントのテキストを選択できなくする
TextAreaコンポーネントには、選択の可否をコントロールするプロパティが見当たりません[*1]。そのため、TextArea.textFieldプロパティで、コンポーネント内のTextFieldインスタンスを操作しなければならなそうです(図001)。
図001■テキストを選択できなくしたTextAreaコンポーネントインスタンス2009.10.31 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
[AS3] DataGridColumn.cellRendererプロパティに文字列で値を指定する
DataGridコンポーネントインスタンスの列のセル表示を変えたいとき、DataGridColumn.cellRendererプロパティに単純にクラスを文字列で指定するとエラーになります(図001)。
図001■ DataGridColumn.cellRendererプロパティに文字列でクラスを指定するとエラーになる
2009.08.13 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
日本発、世界向けFlash blog − JActionScripters.com
英語blogはじめました。
2009.05.19 | 野中 文雄 | [AS 3][ActionScript][Tips][オススメサイト]
コメント (0) -
DisplayObject(またはそのサブクラスの)インスンスをタイムライン(厳密にはDisplayObjectContainerインスタンス)の子として加えるとき、通常はDisplayObjectContainer.addChild()メソッドを使います。しかし、大量の子インスタンスを一気に追加する場合には、DisplayObjectContainer.addChildAt()メソッドを使うと処理は速くなることがあるようです。
2009.04.09 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
Flash CS4 Professionalの[ヘルプ]がオンラインになり、Adobeサイトのヘルプコンテンツが表示されるようになりました。[ヘルプ]パネルは、なくなったということです。今までと具体的に変わった点を、いくつか挙げてみます。
2009.01.16 | 野中 文雄 | [ActionScript][Tips][アニメ・グラフィックス][野中ゼミ]
コメント (5) -
偶数を2で割るとき[*1]は、ビット単位の右シフト演算子>>を使うと処理が速いといわれます[*2]。実際にFlash CS4 Professionalの[ムービープレビュー]でテストしてみると、環境やスクリプトの記述により、結果にばらつきが出てくるようです。
[*1] もう少し正確には、割る数が2の累乗で商が整数になる場合です。
[*2] たとえば、polygonal labs「Bitwise gems - fast integer math」参照。
2008.12.24 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
ActionScript 3.0の関数(メソッド)では、ローカル変数や引数以外のthisを含めた参照はその定義時に決まります。このようなデータ構造を、「クロージャ」と呼ぶことがあります[*1]。関数(メソッド)本体内のthis参照も、それが定義されたインスタンスに定まります。ですからthis参照は、Function.apply()メソッドの第1引数で変えることも基本的にできません(つまり、第1引数に指定するできるのはthisのみになります)。
2008.12.17 | 野中 文雄 | [AS 3][ActionScript][OOP][Tips][野中ゼミ]
コメント (0) -
AS3から導入されたドキュメントクラスという概念があります。
慣れないうちは混乱のもとでもあったのですが、いざ使いだしてみると、これがなかなか便利なことに気付きました。
特に、あるSWFファイルをMovieClip以外のクラスのインスタンスとして外部から読み込めるのは、かなり活用の甲斐がありそうです。しかし、自分が今動いているプロジェクトはAS2ベース…。
2008.10.18 | 小野田 智 | [ActionScript][Tips]
コメント (0) -
ActionScript 3.0でも、MovieClipインスタンスに名前をつけて、参照したり管理することができます。しかし、インスタンス名の果たす役割は、ActionScript 2.0/1.0とは少し変わりました。
2008.04.19 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (3) -
ActionScript 2.0で関数内のスコープを確かめる
ActionScript 2.0における関数内のスコープを、サンプルスクリプトで確かめてみます。this参照がある場合とない場合について、タイムラインの関数とクラスのメソッドでも扱いに少し違いが生じます。なお、このテストは、Flash Professional 8/ActionScript 2.0で行っています。
2008.03.06 | 野中 文雄 | [ActionScript][OOP][Tips][野中ゼミ]
コメント (0) -
[AS3] クラスを複数のMovieClipシンボルに設定したい
MovieClipを継承してコントロールするクラスは、MovieClipシンボルに[リンケージプロパティ]で[クラス]として設定することができます。それでは、複数のシンボルに対して、同じひとつのクラスを割当てることはできるでしょうか。
2008.01.17 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
クラス名を文字列で参照して、コンストラクタを呼出したいことがあります。
たとえば、複数のクラスから、動的にひとつを選んでインスタンスを作成したいという場合です。あるいは、複数のシンボルに[リンケージプロパティ]で連番のクラス名を設定して、ループ処理によりそれらのインスタンスを作成するといった目的も考えられます。本稿では後者を例に、その方法をご紹介します。
2008.01.17 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (1) | トラックバック (1) -
SWFファイルの外部読込みとMovieClip.attachMovie()メソッド
リンケージ設定された[ライブラリ]のMovieClipシンボルは、SWFに関連づけられるようです。
2007.09.30 | 野中 文雄 | [ActionScript][Tips][野中ゼミ]
コメント (0) -
パネルのタイトルバーをドラッグして他のパネルに近づけると、ドロップゾーンがハイライトして、そのパネルにドッキングすることができます(図001)。けれど、ドッキングせずに、その位置でフローティング状態にしておきたい場合があります。
図001■パネルのドッキング
2007.07.31 | 野中 文雄 | [ActionScript][Tips][アニメ・グラフィックス][野中ゼミ]
コメント (3) -
FileReference.onUploadCompleteDataイベント
Flash CS3では、どうしてもActionScript 3.0に目を奪われがちです。でも、2.0についても、一部追加された機能はあります。
2007.06.30 | 野中 文雄 | [ActionScript][Tips][野中ゼミ]
コメント (0) | トラックバック (2) -
ActionScript 3.0では、escape()関数の動作が2.0/1.0とは一部変わりました。たとえば、"F-siteセミナー"という文字列をescape()関数でURLエンコードすると、ActionScript 3.0と2.0/1.0の結果はそれぞれつぎのような文字列になります。
【ActionScript 3.0】
F-site%u30BB%u30DF%u30CA%u30FC
【ActionScript 2.0/1.0】
F%2Dsite%E3%82%BB%E3%83%9F%E3%83%8A%E3%83%BC2007.06.09 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (9) -
むらけんです。こんにちわ。 2月のF-siteセミナーに来ていただいた方は記憶にあるかと思いますが、タナカミノルさんに、ちょろっと紹介していただいた[GAINER]というものがありましたね。参考:[セミナーレポート]2007.06.05 | むらけん | [ActionScript][Tips][サンプル]
コメント (2) | トラックバック (1) -
[papervision3d]*Step2*GeometryObject3Dクラス
むらけんです。
いや~遂にCS3日本発売日も来月に決定し、米国版のトライアウト版も先日ダウンロード可能となりました。そして、明日はF-siteセミナーです。160人会場で立ち見が出そうな位大入です。来られる方はよろしくです。
さて、papervision3d第三回です。
今回からは早速ですがソースファイルはCS3版とさせていただきます。2007.05.11 | むらけん | [AS 3][ActionScript][Tips][サンプル]
コメント (1) -
[papervision3d]*Step1*マウスイベント等を付けたりしてみる。
むらけんです。
前回はpapervision3dを利用した、シンプルなサンプルをご紹介しましたが、今回はもう少し立ち入ってみましょう。2007.05.07 | むらけん | [AS 3][ActionScript][Tips][サンプル]
コメント (0) | トラックバック (1) -
[papervision3d]*Step0*入門編-HelloWorld-
お久しぶりです。むらけんです。
さて、世間を騒がせているpapervision3dですが、僕もAS3の壁を乗り越えてやっと弄り始めました。
大分理解出来ましたので、自分を含めAS1.5大好きな人にも抵抗の少ないフレームアクションベースでご紹介していきたいと思います。2007.05.07 | むらけん | [AS 3][ActionScript][Tips][サンプル]
コメント (1) -
あるデータ型の値を異なるデータ型として用いる場合には、データ型の「明示的な変換」(キャスト)を行います。配列すなわちArray型へのキャストには、別途注意すべき点があります。
2007.04.28 | 野中 文雄 | [AS 3][Tips][野中ゼミ]
コメント (0) -
Flash 8のUser Interfaceコンポーネントは、マウスイベントの種類が少ないです。たとえば、Buttonコンポーネントでも、マウスイベントとしてはclickしかありません(図001)。User Interfaceコンポーネントに、他のマウスイベントを追加してみましょう。
図001■Buttonコンポーネントのイベント
2007.02.21 | 野中 文雄 | [ActionScript][Tips][野中ゼミ]
コメント (0) -
ActionScript 3.0では、オーサリング時に予め配置してあるインスタンスについての型指定が、2.0とは変わっているようです。
2007.02.12 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
[AS3] ActionScript 3.0で外部テキストファイルを読込む
ActionScript 3.0では、外部テキストファイルを読込むLoadVarsクラスがなくなります[*1]。その替わりに用意されたのが、flash.net.URLLoaderクラスです[*2]。URLLoaderクラスを使った外部テキストファイルの読込みについてご紹介します。
2007.02.08 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (2) | トラックバック (1) -
FLASH8が出て少しした頃、Blurフィルタを用いて、ブラーインの演出というものが流行りましたね。 最近BitmapDataクラスを用いた、モザイクインをよく見かけるようになってきたので、汎用できるようにスクリプティングしてみました。
2006.11.28 | むらけん | [ActionScript][Tips][サンプル]
コメント (0) -
文字列は単純な値でしょうか、それともオブジェクトでしょうか。実は少し込入った仕組みになっていて、しかもActionSctipt 1.0/2.0と3.0とで仕様が変わっています。
2006.11.13 | 野中 文雄 | [AS 3][ActionScript][Tips][野中ゼミ]
コメント (0) -
mixiでこんな質問がありました。イベントハンドラメソッドに空のfunction(関数)を設定したとき、処理の負荷は増えるでしょうか? 理屈で考えると、Flash Playerからメソッドの呼出しが生じる分、CPUが使われるように思われます。簡単に、実験してみました。
2006.11.13 | 野中 文雄 | [ActionScript][Tips][野中ゼミ]
コメント (0) -
変数に初期値を与えるとき、ふたつの書き方があります。これらは何か違いがあるのでしょうか?
i = 0;
var i = 0;2006.10.20 | 野中 文雄 | [ActionScript][Tips]
コメント (0) -
[ライブラリ]のビットマップ(図001)を、ActionScript 3.0でダイナミックに配置してみましょう。
図001■[ライブラリ]に格納されたビットマップ
2006.08.10 | 野中 文雄 | [AS 3][ActionScript][Tips]
コメント (0) -
ActionScript 3.0では、イベントを取得するには、イベントリスナーへの登録が必要になりました。また、マウスイベントには、doubleClickが加わりました。ところが、普通のクリックは受取れるのに、同じ処理でダブルクリックを検出することができません。
2006.07.19 | 野中 文雄 | [AS 3][ActionScript][Tips]
コメント (0) -
ActionScript 3.0では、import指示子の使い方が、ActionScript 2.0と変わりました。
2006.07.15 | 野中 文雄 | [AS 3][ActionScript][Tips]
コメント (0) -
プログラムでインスタンスをつくるには、「new クラス名()」というかたちでコンストラクタを呼び出すのが原則だ。ところが、MovieClipやTextFieldなどは、コンストラクタでインスタンスを生成することができず、MovieClip.createEmptyMovieClip()あるいはMovieClip.createTextField()などといった特別なメソッドを使う必要があった。ActionScript 3.0では、これらも原則どおりコンストラクタで作成することができる
MYCOMジャーナル「AdobeのFlash担当者に訊く - Flash Player 9とActionScript 3.0何が変わる?」注[*5]
2006.07.07 | 野中 文雄 | [AS 3][ActionScript][Tips]
コメント (0) -
[ライブラリ]にコンポーネントがあるとき、メインタイムライン(_root)の深度はDepthManagerクラスで管理することが考えられます。
2006.06.02 | 野中 文雄 | [ActionScript][Tips]
コメント (0) -
たとえば、メインタイムライン(_root)に、MovieClipインスタンスmy_mcを配置します。そして、[プロパティ]インスペクタで、X座標に12.3456789(ピクセル)という値を入力すると、どうなるでしょう?(図001)
図001■[プロパティ]インスペクタでX座標に小数値を設定
2006.04.26 | 野中 文雄 | [ActionScript][Tips]
コメント (0) -
Flash MX 2004およびFlash 8には、OnEnterFrameBeaconというクラスがあります。このクラスのOnEnterFrameBeacon.init()というメソッドを呼出すと、MovieClipにリスナーオブジェクトが登録でき,MovieClip.onEnterFrameイベントを受取れるようになります。
2005.10.09 | 野中 文雄 | [ActionScript][Tips]
コメント (0) -
Flash Player 8で書出したSWFの静止テキストが表示されない
Flash 8はフィルタが追加されたり、テキストのレンダリングエンジンの性能もアップするなど、表現力が向上しました(「次世代Flash − 8ball」参照)。しかし、そのテキストの表示について、物騒なTechNoteがアップされました。
Flash TechNote「Static text published for Flash Player 8 does not appear on Flash Player 7」より:
Macromedia Flash Player 8向けにパブリッシュされたSWF内の静止テキストは、Flash Player 7(以前)で見ると表示されません("Static text in a SWF file published for Macromedia Flash Player 8 does not appear if viewed in Flash Player 7.")。2005.09.21 | 野中 文雄 | [ActionScript][Tips]
コメント (3) -
Flash MX 2004オンラインヘルプによれば、「ムービークリップがMovieClip.loadVariables()またはMovieClip.loadMovie()の呼び出しからデータを受け取ったときに呼び出されます」。しかし、これは嘘です。MovieClip.loadMovie()メソッドを使った場合、MovieClip.onDataハンドラは呼出す方法がありません。
2005.06.05 | 野中 文雄 | [ActionScript][Tips]
コメント (0) -
PopUpManager.createPopUp()の戻り値の型
PopUpManager.createPopUp()メソッドは、「コンポーネント辞書」(オンラインヘルプ「Flashコンポーネントガイド」)によれば、「作成されたウィンドウへの参照」つまりWindowインスタンスを返します。ところが、戻り値をWindowsクラスで型指定した変数に代入すると、コンパイルエラーが発生します。
2005.04.20 | 野中 文雄 | [ActionScript][Tips]
コメント (0) -
パブリッシュしたSWFのFlash Playerのバージョンによって、返される値が異なります。
2005.02.08 | 野中 文雄 | [ActionScript][Tips]
コメント (0) -
Macromedia Flash MX 2004 Developerサンプル問題[解答]
Macromedia Flash MX 2004 Developerサンプル問題の解答です。解答はとくに日本語訳する必要もないものなので、気になった部分にコメントをつけてみしました。
2004.10.05 | 野中 文雄 | [ActionScript][Tips]
コメント (0) -
Macromedia Flash MX 2004 Developerサンプル問題
Macromedia Flash MX 2004 Developerの認定試験というものがあります。サンプル問題が英文のままなので、ざっと日本語訳してみました。
2004.10.05 | 野中 文雄 | [ActionScript][Tips]
コメント (1) -
殺人事件の捜査は、まず被害者の特定に始まり、つぎに犯行時刻を推定し、そして容疑者のアリバイを洗います。トラブルシューティングの手順も、これと同じ考え方で進めることができます。
2004.10.05 | 野中 文雄 | [ActionScript][Tips]
コメント (0) -
Flash Playerの古いバージョンを、テストのため必要とすることがあります。Macromediaでは、古いバージョンのFlash Playerを、テスト用に公開しています。
2004.08.04 | 野中 文雄 | [ActionScript][Tips]
コメント (2) -
英語版が公開されたFlash MX 2004 Updater 7.2は、コンポーネント関連ドキュメントが充実しました。その中には、コンポーネントのアニメーションをカスタマイズする方法も、紹介されています([Help] > [Using Components] > [Customizing Components] > [Using styles to customize component color and text] > [Customizing component animations])。
2004.08.01 | 野中 文雄 | [ActionScript][Tips]
コメント (3) -
Flashのフレームレートを正常に[Internet Explorer 6/Window]
こんなレポートを見つけました。
「Internet Explorer 6.0/Windowsで、wmode属性を設定すると、スピードがアップする」(3へぇ)
2004.06.12 | 野中 文雄 | [ActionScript][Tips]
コメント (5) -
Flash MXから実装されたイベントハンドラメソッドの定義をクリアしたいとき、delete演算子を使わずに、undefinedやnullを代入する人がいます。イベントハンドラメソッドは、delete演算子で削除した方が安全です。
2004.05.22 | 野中 文雄 | [ActionScript][Tips]
コメント (3) -
System.capabilities.languageの英語システム上の戻り値
Flash MX 2004の「ActionScript辞書」によれば、System.capabilities.languageの英語システム上の戻り値は、"en"です。Flash Player 6では、この値が異なります。
2004.05.05 | 野中 文雄 | [ActionScript][Tips]
コメント (0) -
Flash MX 2004のオンラインヘルプに、LoadVars.onDataメソッドが正規に掲載されました。
2003.11.13 | 野中 文雄 | [ActionScript][Tips]
コメント (0) -
onClipEvent(load)で自分自身にloadMovieしてはいけません
onClipEvent (load)ハンドラ内で、自分自身(this)をターゲットとしてMovieClip.loadメソッドを実行してはいけません。外部ファイル(SWFまたはJPEG)がロードされると、また新たにloadイベントが発生するので、永久に処理が終わらないからです。
と、これだけで説明はよいのですが、AYAさんにウケたので、その状況をこんな風にたとえてみました。
2003.10.27 | 野中 文雄 | [ActionScript][Tips]
コメント (5) -
ショートカットキーは、覚えておくと便利なものがいろいろあります。しかし、なかなか気づかなかったり、仕様が微妙に変わったり、いわれないとわからない部分も少なくありません。思いつくまま、ショートカットキーに関わる小ネタをご紹介します。
2003.10.15 | 野中 文雄 | [ActionScript][Tips]
コメント (0) -
Flash MX 2004でスクリプトを書いたとき、MXからの変更点でハマりがちな項目に触れておきます。
2003.09.26 | 野中 文雄 | [ActionScript][Tips]
コメント (1) -
ストリングの評価はfalseが原則
ifアクションやBoolean関数あるいはBooleanオブジェクトで、ストリングの論理値を調べる場合があります。ストリングは、Number関数で数値に変換できる0以外の数字であればtrueと評価されます。他のストリングの論理値は、falseです(「ActionScript辞書」のBoolean(オブジェクト)の項には、「関数は数値(x)が0でなければtrueを返し」とありますが、意味がわかりません。誤訳でしょう)。2001.09.26 | 野中 文雄 | [ActionScript][Tips]
コメント (0) -
いきなり問題です
[1]つぎのActionScriptの問題点は何でしょう? [2]実行するとどのような結果になりますか?if (condition=1) {
trace (true);
} else {
trace (false);
}2001.09.26 | 野中 文雄 | [ActionScript][Tips]
コメント (0) -
Flashのバグ?
以下のステートメントを実行してみましょう。0.01ではなく、0.00099999999999989というような半端な値が返ります。2001.09.18 | 野中 文雄 | [ActionScript][Tips]
コメント (3)