ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

ActionScript Loungeコミュの[CS3/AS3] 直ったバグ 増えたバグ

  • mixiチェック
  • このエントリーをはてなブックマークに追加
Flash CS3 Professionalの英語版Trialも公開されましたので、新たにトピックを立てました。

各新規項目には先頭に「●」をつけて、レスと区別しやすくしましょう。

コメント(18)

●配列と加算演算子(++)
// ActionScript 2.0
// フレームアクション
var test_array:Array = new Array();
var i:Number = 0;
test_array[i] = i;
trace(test_array);
// test_array[1] = 100; // ヒント
test_array[i++] += i; // 問題
trace(test_array);
trace(i);
// 出力:
0
NaN
2

iがなぜ2に加算されるのか、不思議です。ヒントのステートメントを有効にすると、原因が推測できます。問題のステートメントが、内部的にはつぎのように処理されているようです。

test_array[i++] = test_array[i++]+i;

ActionScript 3.0では、正しい[出力]が得られます。
// ActionScript 3.0
// 出力:
0
1
1
>> 1:
> ●配列と加算演算子(++)
インクリメント(++)でなく、むしろ加算後代入演算子(+=)を項目に入れるべきでした
●()を使った式が戻り値に指定された関数を[自動フォーマット]すると
http://f-site.org/articles/2007/06/05092845.html

[自動フォーマット]を使う人は、returnステートメントの戻り値に複数項の式を指定するのは止めましょう。
●静止テキストがStaticTextインスタンスとして認識されない
http://www.fumiononaka.com/TechNotes/Flash/FN0709001.html
静止テキストのインスタンスを取得しているにもかかわらず、StaticTextクラスのインスタンスとして認識されないことがあります。
●FileReferenceList.browse()のEvent.SELECTイベントがLeopardで発生しない
http://bugs.adobe.com/jira/browse/SDK-13220
ActionScript 3.0のFileReferenceList.browse()メソッドで選択をしたとき、Event.SELECTイベントが、Leopard上のFlash Player 9では発生しないようです。

[【高度】Flash ActionScript]コミュニティのトピックに投稿されていました。
http://mixi.jp/view_bbs.pl?id=24895570&comment_count=4&comm_id=105984
>> 5:
Mac OS X.5をX.5.1にアップデートすると、問題が解消するとの報告がありました。

jwopitz - flex/flash exploration
「flash.net.FileReference & Mac OS Leopard: Not playmates?」:
http://jwopitz.wordpress.com/2007/11/16/flashnetfilereference-mac-os-leopard-not-playmates/
●[自動フォーマット]で要らぬ閉じ括弧}が増える
勝手な追加をしておいて、シンタックスエラー出すのはやめてほしいです。

[使用前]
if (true) {
} else if (true) {
} else {
 1; // test
}

[使用後/Flash 8] コメントが別の行になるも、動作に問題なし。
if (true) {
} else if (true) {
} else {
 1;
 // test
}

[使用後/Flash CS3/ActionScript 3.0] 当然シンタックスエラー。
if (true) {
} else if (true) {
} else {
 1;
}// test
};

[使用後/Flash CS3/ActionScript 2.0] 問題なし。ただし、なぜ構文解釈が変わるのか不明。
if (true) {
} else if (true) {
} else {
 1;// test
}
●TextField.appendText()で\rの含まれたテキストが正しく追加できない
http://www.fumiononaka.com/TechNotes/Flash/FN0712001.html

FLASH-japanのネタから、起こしました。
FLASH-japan「appendメソッドで改行を付け加えた時の動きがヘン」
http://www.flash-jp.com/modules/newbb/viewtopic.php?viewmode=flat&topic_id=7326&forum=20
●String.replace()と$置換コード

replace()メソッドは、第1引数で正規表現(キャプチャグループ有り)を使った場合に第2引数で$置換コードが使えますが、その挙動に疑問を持ちました。

// ActionScript 3.0
// フレームアクション
var str:String = "some words";
trace(str.replace(/(\w+)/g, "$1"));
//出力:
some words
↑これは問題ありません。

リファレンスによれば、$n(nは1〜9) または $nn(nは01〜99)で指定できます。
なので$01を指定してみました。

trace(str.replace(/(\w+)/g, "$01"));
//出力:
some1 words1
↑なんかヘン..

同じことをJavaScriptで試してみましたが、そちらは$1でも$01でも同じ結果で期待通りでした。AS3のはバグではないかと思いますが、どうでしょうかね?
>> 9: タナカヤスヒロさん
> ●String.replace()と$置換コード
_____
"$0"+nが、"$"+n+nとして解釈されているようですね。合理的な説明のできる動作ではないように思われます。

// ActionScript 3.0
// フレームアクション
var _str:String = "2008-01-25";
var n:int = 1; // 2; 3;
trace(_str.replace(/(\d+)-(\d+)-(\d+)/g, "$"+n)); // 出力: 2008
trace(_str.replace(/(\d+)-(\d+)-(\d+)/g, "$0"+n)); // 出力: 20081
trace(_str.replace(/(\d+)-(\d+)-(\d+)/g, "$"+n+n)); // 出力: 20081
そうなんですよー。
まあ$1〜$9、$10〜$99で指定すればいい話なんでしょうけど、ドキュメントと違う動作をされると困る仕事がありますよね。
●ifとコメントと[自動フォーマット]
ARRGH!!
すごす。。。
trace()内の第2引数以降「[]」operatorがはいるとすべてだめですね。
第1引数に[]がはいった場合のみ、うまく自動フォーマットされますが。。。
trace([],[]);//OK?

ちなみに、AS3ですが
自動フォーマット前
if (1) {
tracer(1,[]);
};
function tracer(...temp):void {
   trace(temp);
   trace(temp.length);
}


自動フォーマット後
if (1) {
}
tracer(1,[]);
};
function tracer(...temp):void {
trace(temp);
trace(temp.length);
}
tracer関数が、if文の外にくるほか「};」が余計に足されます。。。
南無阿弥陀仏。。。
>> 14:
F-siteの記事として掲載しました。カンマ区切りの配列が地雷のようです。

「ifとカンマと配列と ー [自動フォーマット] vol.3」
http://f-site.org/articles/2008/02/18133547.html
●Namespace.prefixとNamespace.uri

ドキュメントではどちらのプロパティも[read-write]となってますが、実際は[read-only]のようです。ドキュメントバグでしょうか?実装にもsetterが載っているのですが...
●beginBitmapFill() matrixの値によっては正しく描画されない

beginBitmapFillメソッドは引数に渡すmatrixの値によっては
正しく描画されないようです。

自分が確認したところでは、
Matrixインスタンスのプロパティtx tyに32000辺りを超えた値を渡すと、
tx、tyの値を無視したような描画を行いました。

http://www.matzmtok.com/blog/?p=74

テスト環境
Flash player 9.0.124 (win xp sp3)
Flash player 10 b218 (win xp sp3)

Adobeのbug systemにも関連しそうな事例がありました。
https://bugs.adobe.com/jira/browse/FP-249

ログインすると、残り2件のコメントが見れるよ

mixiユーザー
ログインしてコメントしよう!

ActionScript Lounge 更新情報

ActionScript Loungeのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。