泣ける曲

知人の友人のiPodには泣く時用のプレイリストがあるそうです。その真似っ子。うっかり見てしまった人、俺仕様なので泣けねーとか野暮言わないでね。素晴らしい音楽さえあれば、きっと生きて行ける。最近youtubeはタイトルが出るようになったけど一応入れておく。随時更新。

Continue reading “泣ける曲”

データ型の変換

String型の”4649″をint型の4649として計算したい時など、データ型を変換したい場合があります。
型変換には、暗黙的に行われる場合と、明示的に行う必要がある場合があります。明示的に行う型変換を「キャスト」と呼びます。

暗黙的な変換

以下はuint型とString型の連結の例。数値の11が暗黙的に文字列に変換され、文字列同士の連結が行われます。

var num:uint = 11;
var str1:String = "キングカズ";
var str2:String;
str2 = str1 + num;
trace(str2); //キングカズ11

明示的な変換

明示的な変換には関数によるキャストと構文によるキャストがあります。

関数によるキャスト
トップレベルに用意されているキャスト用の関数を使用します。

キャスト用関数
関数 説明
Boolean() ブール値に変換
Number() Number型の数値に変換
int() int型の数値に変換
uint() uint型の数値に変換
String() 文字列に変換

文字列をNumber型の数値に変換する例。

var str:String = "3.14";
var num:Number;

num = Number(str); //文字列を数値に変換
trace(num);	//3.14

小数点以下の数値を含むNumber型の数値をint型やuint型にキャストすると小数点井が切り捨てられます。

var num1:Number = 3.14;
var num2:int;

num2 = int(num1); //Num型をint型にに変換
trace(num2); //3

構文によるキャスト
専用の関数が用意されていないデータ型に変換する場合でも、次のような構文を使用することで関連するクラスにキャストできます。

クラス(値)

以下はMovieClipクラスのインスタンス「mc」をSpriteクラスにキャストします。

var mc:MovieClip = new MovieClip();

var sp:Sprite;
sp = Sprite(mc); //MovieClipクラスをSpriteクラスに変換

データ型を調べたい

データ型をチェックするにはtypeof,is,asなどを使います。

typeof演算子

typeof演算子はデータ型を表す文字列を返します。

typeof演算子を使用した結果
データ型 結果
Array “object”
Boolean “boolean”
Function “function”
int “number”
Number “number”
Object “object”
String “string”
uint “number”
XML “xml”
XMLList “xml”
ユーザー定義クラスの
インスタンス
“object”
var num:int = 14;
var Valentine:Date = new Date();
var str:String = new String("choco");
var flag:Boolean = true;
var girl = new MovieClip();

trace(typeof num); // number
trace(typeof Valentine); // object
trace(typeof str); // string
trace(typeof flag); // boolean
trace(typeof girl); // object 

is演算子

is演算子は特定のデータ型が一致すればtrue、そうでなければfalseを返します。
また、クラスの階層構造をチェックし、そのデータが継承する祖先のクラスを指定した場合にもtrueを返します。

var mySp:Sprite = new Sprite();
trace(mySp is Sprite);           // true
trace(mySp is DisplayObject);    // true
trace(mySp is Object); // true

as演算子

A as Bのように記述します。AがBで指定したデータ型に一致した場合その値を返し、一致しないときはnullを返します。

var mList:Array = ["January", "February", "March"];
trace(mList as Array);  // one,two,three
trace(mList as Number); // null
trace(mList[2] as int);    // null

数値を表すプリミティブデータ型

整数にはint型もしくはuint型を使用します。int型は正、負の数を扱えますが、uint型は正の数だけしか扱えません。Numberは、整数、符号なし整数、および浮動小数点数を表すことができます。ただし、1つのデータに対して64ビットの領域を必要とします。パフォーマンスを最大化するためにっは、32ビットのintおよびuint型より大きい整数値に対してのみ、Numberデータ型を使用します。

数値を表すプリミティブデータの取る範囲
データ型 デフォルト値
int integer(整数)の略。
-2,147,483,648~2,147,483,647の整数
uint unsigned integer(符合なし整数)の略。
0~4,294,967,295の整数
Number 整数、符号なし整数、および浮動小数点数

変数のデフォルト値

デフォルト値とは、値を設定する前に変数に格納されている値です。変数に初めて値を設定する場合は、変数を初期化します。変数を宣言して値を設定しないと、その変数は初期化されません。初期化されていない変数の値はデータ型によって異なります。

初期化されていない変数のデフォルト値
データ型 デフォルト値
Boolean false
int 0
Number NaN
Object null
String null
uint 0
宣言されていない(型注釈 * と同じ) undefined
ユーザー定義クラスを含むその他すべてのクラス null

Number 型の変数の場合、デフォルト値は NaN(非数)です。これは、IEEE-754 規格で定義されている特別な値で、数値を表さない値です。

値 null は、Boolean、Number、int、および uint 型の変数では有効な値ではありません。値 null をこれらの変数に割り当てようとすると、この値はそのデータ型のデフォルト値に変換されます。Object 型の変数の場合、値 null を割り当てることができます。値 undefined を Object 型の変数に割り当てようとすると、この値は null に変換されます。

ActionScript2.0と3.0のプロパティの違い

上記を読んで全くその通りだなぁ、と。俺も最近アタマ悪くなったなぁと想っていたのですが、少し考えれば元々アタマは悪かったんですよね。受験勉強してた時(普通の文系)も同じ参考書を何回も何回もやってやっと覚えたわけで。アタマ悪いんだから純粋に勉強量で勝負しなくては。ということで
ActionScript 3.0 プログラミング入門を全て理解できるまで読み直していこうと想います。少しでも曖昧なところは全部あげていきます。(でもProgressionもちょこちょこやってくよ!)

Continue reading “ActionScript2.0と3.0のプロパティの違い”