渡す値とその返り値
ActionScript3 で、明らかに正しいはずのコードが動かなくて困ったのでメモ。
きっかけは TextFormat
テキストの見た目を整える場合、 TextFormat を使います。このとき、以下のようなコードを考えます。
var myTextFormat:TextFormat = new TextFormat(); myTextFormat.leading = 10; var i:int = myTextFormat.leading;
これをコンパイルすると型変換のエラーが発生し、コンパイルエラーになってしまいます。疑問に思って API で leading プロパティを調べてみたところ、このように記述されていました。
leading : Object
行間の垂直の行送りを示す整数です。
そう、セットする値は整数値なのに、戻ってくる値は Object になっています。上のコードを動作させるには、明示的にキャストする必要があるようです。
var myTextFormat:TextFormat = new TextFormat(); myTextFormat.leading = 10; var i:int = int(myTextFormat.leading);
もし、こうした型変換のエラーに出くわした時は、まず API を確認するといいかもしれません。