なるべく1日1wonderfl
wonderflデビュウしましたよ。三角関数使いこなせてませんが、凄腕のみなさんの作品で勉強させてもらいつつ、気持ちいいものをあげていければと想います。
wonderflデビュウしましたよ。三角関数使いこなせてませんが、凄腕のみなさんの作品で勉強させてもらいつつ、気持ちいいものをあげていければと想います。
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演算子はデータ型を表す文字列を返します。
| データ型 | 結果 |
|---|---|
| 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演算子は特定のデータ型が一致すればtrue、そうでなければfalseを返します。
また、クラスの階層構造をチェックし、そのデータが継承する祖先のクラスを指定した場合にもtrueを返します。
var mySp:Sprite = new Sprite(); trace(mySp is Sprite); // true trace(mySp is DisplayObject); // true trace(mySp is Object); // true
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 に変換されます。
上記を読んで全くその通りだなぁ、と。俺も最近アタマ悪くなったなぁと想っていたのですが、少し考えれば元々アタマは悪かったんですよね。受験勉強してた時(普通の文系)も同じ参考書を何回も何回もやってやっと覚えたわけで。アタマ悪いんだから純粋に勉強量で勝負しなくては。ということで
ActionScript 3.0 プログラミング入門を全て理解できるまで読み直していこうと想います。少しでも曖昧なところは全部あげていきます。(でもProgressionもちょこちょこやってくよ!)
Tweenerではデフォルトで設定されている表示に関係するプロパティ(xとか_scaleとかBlur_blurXとか)以外にも、数値型であれば自作クラスのプロパティでもtweenできるみたい。サンプルではエリアをクリックすると、クリックした座標に向かって数値がtweenします。
おなじみTweenerについてのメモです。tweener – Google Codeからダウンロードできます(この記事を書いてる時点で最新バージョンは1.31.74です)。
呼び出し元に指定したDisplayObjectがついていない場合に起こる。
var sp:Sprite = new Sprite(); var sh:Shape = new Shape(); sh.graphics.beginFill(0xFF0000); sh.graphics.drawRect(0, 0, 100, 100); sh.graphics.endFill(); addChild(sh); sp.removeChild(sh);
shはstageにaddChildされているが、spにaddChildされているものと勘違いしてremoveChildしようとした。