Progressionで、CastSpriteクラスを使って、テキストを渡して表示するだけのクラスを作ろうとしたんですよ。そしたらうまくいかない。

テキスト流し込んだTextFIeldをaddChildしてるのに表示されないんです。んでプロパティをチェックしたら、インスタンスのwidth,heightが共に0。addChildした(はずの)TextFieldのwidth,heightはちゃんとしてた。ってことは、addChildの辺りで何か問題が起きてるのか?それともフォントの埋め込みが問題なのかな?

よくわからないけど、CastSpriteをやめてただのSpriteにしたら全く問題なかったです。

§

で、そのフォント埋め込みなんですが、flaファイル上で作ったTextFieldにembedFonts=trueでhtmlTextを設定した場合、でテキストを囲まないとフォントが埋め込まれないけど、TextFieldを最初からas3でnewしてあげるとfontタグが不要に。

んーふっ

§

で、前にも同じことがあったけど改めてメモなんだけど。

ProgressionでAddChildAtコマンドを使うときは、AddChildと混在させずにAddChildAtで統一しないと、配置するものの重なり順が思い通りになってくれません。

以上、そんなメモ書き。

TextField。

って、AS内でnewした時は、プロパティをwidth→wordWrap→autoSizeの順で設定してあげないと、狙い通りの挙動をしてくれない、ってのはなんとなく知ってたんですよ。

ProgressionのSerialList内でPropコマンドを使って順に設定しても、思ったように動いてくれなくてプチハマりました。

コマンドリスト内ではなく普通に1個ずつプロパティ設定してやったら大丈夫でした。

改行なしの右側可変TextFieldを作りたい場合。

var _tf:TextField=new TextField();  
var sList:SerialList=new SerialList();  
sList.addCommand(null  
,new Prop(_tf,{width:10})  
,new Prop(_tf,{wordWrap:false})  
,new Prop(_tf,{autoSize:TextFieldAutoSize.LEFT})  
,new Prop(_tf,{text:'ほげほげ'})  

〜中略〜
[as3 firstline=”10”]
);
sList.execute();

  
↑これだとTextFieldのサイズはデフォルトの100x100のままだった。  
  
[as3 language="gutter:false"]  
var _tf:TextField=new TextField();  
_tf.width=10;  
_tf.wordWrap=false;  
_tf.autoSize=TextFieldAutoSize.LEFT;  
_tf.text='ほげほげ';  

〜以下略〜

普通にこうしてあげれば、あとはコマンドで色々やっても大丈夫でした。

Progressionを猛烈に勉強しながら手探り開発とゆー、ちょっとあぶなっかしい順加です。

忘れないうちにメモなんですが、CastImageLoaderクラスを使って読み込んだ画像をリサイズしようとしても元のサイズのままということがあり、ハマりました。

flabakaさんとか参考にしたんですけどね。

ratioをtrueにしてwidth,height設定しても反映されなくて、そもそも読み込んだイメージのプロパティをwidth,heightでは取得できなくて。
でもscaleX,scaleYでならリサイズできるとゆー…。

結局どうしたかというと、addChildしたあとに、getRectしてRectangleのプロパティからwidth,heightを取得、リサイズしたいscaleX,scaleYを割り出して設定…っという回りくどいことをしてようやくうまくいきましたorz

なんだったんでしょうね。

今日はProgressionを弄ってみました。

サンプルをダウンロードしてドキュメント見ながらhello world的な物を作ったんだけど、予想以上に簡単にできちゃったよ!

非同期処理とか簡単だし、swfAdressとか何にも意識しなくても自動的に実装されちゃう。すげえ。

よーし父さん張り切ってイロイロ作っちゃうぞー

keyboard_arrow_up