- dynamic/final/staticの情報はクラスのインスタンスからじゃないと取得できない
- staticメンバの情報はクラス自体からじゃないと取得できない
- クラスがインターフェイスかどうか分からない
- declaredBy属性が変数と定数には付かず、メソッドとアクセサにしか付かない
- 他のクラスを継承しているクラスだとネームスペースで修飾されたメンバが取得できない
- メソッドがfinal/overrideか分からない
- メソッドがrest引数を持つか分からない
と、非常に中途半端。
3番目のインターフェイスに関しては、factory要素に type="Object" の extendsClass 要素が含まれていないかで判断できることは出来るけど・・・。
なんにしろ、超使いにくいので正式リリースまでにはなんとかしてもらいたい。
いよいよBeta3がリリースされましたよ。
- ダウンロードページ
- 新しいLanguage Reference デザインが変わって内容もBeta2の時より充実。
- Beta2からの変更点一覧
今回はActionScript関連の大きな変更はほとんど無いみたいです。APIが多少名前変わったりfinalが付いたり移動したりしてるけど、これといった注目点はナシ。
製品版が見えてきた感じですね。
ということで、早速インストールして検証。ちなみに、スタートメニューには、Adobeのフォルダの中にインストールされます(重要)。悲しいなぁ・・。
んで、大方nemuさんのエントリの通りなんだけど、ひとつだけ、グローバルパッケージでクラス以外は宣言できなくなった、と書いてあるんだけど、俺が試した限りでは定数・変数・メソッド・ネームスペース・クラス・インターフェイス、どれも定義&import無しでアクセス可能だった。(もしかしたら読み間違えてるかも?)
個人的には、privateなクラス(ファイル内でのみ使えるクラス)がpackageブロック外でしか宣言できなくなったのが気持ち悪い。直感的ではない(パッと見、privateだかなんだか分からない)と思うのですが、どうなんでしょう?
また何か分かったら書きます。
FlashcodersでなにやらMovieClip.BlendModeTypeなるものが存在するとの噂。
気になっていろいろ調べてたら、ムービークリップのブレンド方法を変更するプロパティを見つけました。PhotoShopやFireworksで言う、レイヤーの描画モードみたいなもんです。
問題のプロパティは、「[MovieClip].blendMode」。これに、MovieClip.BlendModeTypeオブジェクトに定義されている以下のプロパティ(定数)を与えてやると、ブレンド方法を変更することが出来ます。
HARDLIGHT, OVERLAY, ALPHA, INVERT, SUBTRACT, ADD, DIFFERENCE, DARKEN, LIGHTEN, SCREEN, MULTIPLY, LAYER, NORMAL
実際には次のようなコードで使います。ちなみに、blendTypeの初期値はNORMAL。
mcBlueBall.blendMode = MovieClip.BlendModeType.ADD;
で、実際にブレンドモードをテストしてみたのが以下の画像とFlashです。Flashを見るにはFlashPlayer8が必須です。SWFファイルのバージョンを無理やり8に書き換えています。
ビットマップにも対応しています。
ブレンドモードが搭載されたことによってかなり表現の幅が広がるかと思います。Flash Player 8について何か情報があれば引き続きコメント、トラックバック待ってますー。
何とかASを探そうと試行錯誤・・・。ASnativeで追加されたと分かったものに対して実際にメソッド呼び出しをしてみて戻り値を得てみるテスト。その結果、以下のメソッドが戻り値を返しました。(括弧内は戻り値の型)
13,0 = true (boolean) 13,1 = false (boolean) 13,2 = JAPANESE_HIRAGANA (string) 13,3 = false (boolean) 13,4 = false (boolean) 13,5 = true (boolean) 14,1 = null (null) 14,2 = false (boolean) 14,3 = null (null) 14,4 = null (null) 14,5 = null (null) 14,6 = null (null) 14,7 = null (null) 14,100 = true (boolean) 2150,2 = default (string) 2150,4 = 4 (number) 2151,2 = off (string) 2151,4 = 4 (number)
JAPANESE_HIRAGANAとか出てますが、恐らく(13, *)は新しくサポートされたIME関連のメソッドだと思います。(ちなみにFlashPlayer8の新機能の概要)
で、更にこれらのメソッドに対して色んな引数を与えてみた。
ほとんど変化なし・・・。はぁ。ASnative(13, 2)はgetIMEMode()、ASnative(13, 3)はsetIMEMode()(戻り値は成功/不成功)か何かだと思います。恐らく。(14, 5)(14, 6)(14, 7)は文字列関連の何かでしょうか・・・。
眠いんで今日はここまで・・・。暗中模索五里霧中すぎます。。
キタコレ! 英語のみですが、Macromedia Flash Player Public Betaよりインストール出来ます。 バージョンは、「8,0,0,434」です。
で、早速使用感など。 肝心のムービー再生のパフォーマンスですが、流石Macromediaが胸張ってただけあって、かなり改善されています。MG系の作品を見ていただくとよく分かるかと。従来はシンボル数やベクターデータが多く、かつ早く動くような場面ではすこし引っかかったような再生感でしたが、FP8ではそこもスムーズに再生されるようになってます。
続いてActionScriptですが、実行速度が大分上がっているかと思います。例えば、bms解析にかなり時間をとられていたDDRも、その時間がかなり短縮されています。(ちなみに、今まで画質「中」でもぎこちなかった感じですが、FP8では画質「高」でストレスなくプレイできました。凄い。)
ただ、ActionScriptの内部仕様がどこか変わったのか、カコミマCHU!がうまく動かなくなっています。恐らくタスクシステムの何かが引っかかっているのでしょうが・・・。ちなみに、クロスドメイン関係が厳しくなってるとの噂があります。
で、折角なのでドロップシャドウとかブラーとかつけられないかなぁ、と思って、去年の10月にMaelstromが初めて発表された時のプレゼンで使われていた以下のコード(Colin Moock氏のBlogにあったビデオより書き写し)を試してみましたが、やっぱり動きませんでした。ふむ。
var filterObj = new flash.filters.DropShadowFilter(); filterObj.blury = undefined; filterObj.blurx = undefined; filterObj.knockout = false; filterObj.inner = false; filterObj.numIterations = 2; filterObj.blur = 44; filterObj.alpha = 100; filterObj.color = 0x00000000; filterObj.angle = 36; filterObj.clistance = 11; mcBall.filterList = [filterObj];
続いてASnativeを検証。次のコードを用いて、とりあえず大雑把な変更を見て見ました。
for(var i:Number=1; i<3000; i++)
{
if(typeof(ASnative(i, 0)) == "function")
{
txtNative.text += i + ", ";
}
}
で、実行結果。
Flash Player 7 (7,0,19,0) スタンドアロン
Flash Player 8 (8,0,0,434) ブラウザ(IE)上
これから分かるように、2341が消えて、13, 14, 1100, 1101, 1102, 1103, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 2150, 2151, 2198, 2202, 2204, 2205が増えています。恐らくこれらは8ballが使用可能になるモノ達でしょう。
更に詳しく、ASnativeの第2引数も色々変えて検証してみようと思ったのですが、ASnative(n, 0)==functionだと、何故かASnative(n ,m)も全てfunctionが返ってきます・・・。ナニコレ。何か情報知ってる人がいたら教えてください・・・。
というわけで、今現在もFlashPlayer8について色々調べている最中です。また何か分かり次第随時ブログに書きたいと思います。また逆に、何か分かった人がいたらトラックバックやコメントもらえると嬉しいです~。
Fla板にスレも立ってるのでどうぞ。
【Maelstrom】Flash Player 8 総合【8ball】
http://pc8.2ch.net/test/read.cgi/swf/1121167135/l50



