« 2006年11月 | メイン | 2007年4月 »

2007年1月 アーカイブ

2007年1月18日

trace()

ActionScript 3.0でtrace()が少し便利になりました。 AS2.0までのtrace()は値を1つしか出力できなかったので、変数a、b、cの値をtrace()で出力するにはtrace([a,b,c])のように変数の値を配列に入れて1つの値にする必要がありました。

AS2.0の場合:
var a:Number = 1;
var b:Number = 2;
var c:Number = 3;
trace([a, b, c]);
出力 → 1, 2, 3
AS3.0のtrace()では、次のように複数の値を出力できます。a、b、cを配列に入れる必要がありません。

AS3.0の場合:
var a:int = 1;
var b:int = 2;
var c:int = 3;
trace(a, b, c);
出力 → 1 2 3

intクラスとint()

先のtrace()のAS3.0の例では変数aのデータ型にintと指定していますが、intは整数のデータ型を示します。intを指定した場合、数値(typeof number)以外を指定するとコンパイルエラーになりますが、整数ではない数値を指定すると整数化した値が入力されます。

int型の例:
var a:int = 1.6;
var b:int = 0.3;
var c:int = -4.2;
trace(a, b, c);
出力 → 1 0 -4
intはintクラスであり、intクラスのオブジェクトは次のようにnew intコンストラクタで作ることができます。
var a:int = new int(5.3);
なお、Global Functionにint()関数があります。たとえば次のようにint(3.6)を実行すると値を整数化して3を返します。
var b:int = int(3.6);
trace(b);
出力 → 3

2007年1月24日

日本語でAS3.0リファレンスを読む

Flash用のActionScript 3.0 Language Referenceのlivedocsは英語のものしかありませんが、Flex 2のlivedocsは日本語で読むことができます。
Adobe Flex2リファレンスガイド(日本語)

2007年1月25日

フレームアクション

Flash 8までは、フレームアクションが設定されているキーフレームが再生されるまで、定義されている変数や関数を利用することができませんでした。また同一タイムライン上の同名の変数や関数は最後に実行されたステートメントが値を上書きしていました。Flash 9ではこれが変更されています。

変更点1:
同一タイムラインであれば、たとえ再生していないキーフレームで定義してある関数でも利用できます。

変更点2:
同一タイムラインでは同名の変数や関数を定義することができません。たとえば、次のようなフレームアクションはFlash 8ではエラーになりませんが、Flash 9ではエラーになります。
var a:Number = 1;
var a:Number = 2;
trace(a);

これは1つのクラス定義ファイルの中に同名の変数や関数を定義できないのと同じですね。同一タイムラインに書かれているフレームアクションを1個のクラス定義と解釈するようになったと考えるとわかりやすいと思います。

2007年1月26日

scaleX、scaleY

インスタンスの伸縮率のプロパティの_xscale、_yscaleが、AS3ではscaleX、scaleYに変更されました。名前が変わっただけではありません。AS2では伸縮率100%ならば値は100.0でしたが、scaleX、scaleYは伸縮率100%ならば値は1.0です。たとえば、縦横スケールを2倍にするスクリプトは次のようになります。
my_mc.scaleX = my_mc.scaleY = 2;

About 2007年1月

2007年1月にブログ「ActionScript3.0入門ノート」に投稿されたすべてのエントリーです。過去のものから新しいものへ順番に並んでいます。

前のアーカイブは2006年11月です。

次のアーカイブは2007年4月です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。