AS3で新規オブジェクトを作るとき
※Flash9 アルファ版でのスクリプトテストです
気をつけるべきなのが、今までcreateEmptyMovieClipやらcreateTextFieldをやってた処理。
今では空のmcなら
var mc1:MovieClip=new MovieClip();
でいいし、テキストフィールドなら
var tf1:TextField=new TextField();
でいいみたい。
楽!!
ということで比較!!
AS3
var mc1:MovieClip=new MovieClip(); mc1.graphics.lineStyle(3,0x00000000); mc1.graphics.moveTo(100,100); mc1.graphics.lineTo(300,400) addChild(mc1)
AS2
var mc1=createEmptyMovieClip("mc1",1); mc1.lineStyle(3,0x00000000); mc1.moveTo(100,100); mc1.lineTo(300,400);
AS3の場合、たとえばラインを引きたい場合は、オブジェクトを生成してからそいつの持つgraphicsプロパティか何かに一旦描画して、それをオブジェクト自身にaddChildするわけです。めんどくさいというかちょっと分からなかった。graphicsって何だって感じ。
でもこれを覚えておけば、仕様書を読んだときにクラスとメソッドの間にgraphicsやらDisplayObjectやらって変なのがいたとき、それをそのまま受け入れて書けばいいというのが分かってとてもナイス。
まぁAS2でも、空のmcを作ってその上に描画して、さらにそれを他のmcに乗せたり深度変えたりして使わなきゃいけなかったから同じかな。むしろやっぱ楽になってるかも。AS2の場合、同じ深度のインスタンスを作っちゃったらそれ前のものが消えちゃう危険性があったからね。