コードヒントもシンタックスカラーもコンパイルエラーも出ない
以下の例で、Graphicsのメンバ関数であるbeginFill()とかのコードヒントも出ないし、シンタックスカラーも適応されません。
そして、定義されていない適当な関数を書いてもなんとエラーが出ないし、実行するまでわからないのです。
const rect:Shape = new Shape();
with (rect.graphics)
{
beginFill(0xffffff);
drawRect(0, 0, 100, 1);
endFill();
test(); // 定義されていない関数を書いてもコンパイルエラー出ない
}
プロパティの追加ができない
オブジェクトのプロパティ追加ができるのかと思えばできないです。
var obj:Object = {};
// obj.temp = 0; ←スコープ外で宣言してやらないとwith内ではつかえない
with (obj)
{
temp = 10;
}
trace(obj.temp);
実行結果
undefined
コメントアウトを外せば、ちゃんと反映されます。
実行結果
10
スコープのレベルが関数内で変わるような処理はあまりすべきでないってことのような気がします。