Hatena::Groupactionscript

ConquestArrow.addEventListener();

2007-07-01

[]Flex3SDK betaの隠しAPI 14:29 はてなブックマーク - Flex3SDK betaの隠しAPI - ConquestArrow.addEventListener();

ドキュメントに載っていないAS3の隠しAPI(関数、クラス)シリーズ番外編。

「Flex3にも隠しAPIはあるのかな…、でもFlex3でも基本部分はFlex2と同じだから、すくなくともコア部分にはないだろうな…」と思っていたら予想に反してあった。betaなのでオミットされる可能性はもちろんあるが、とりあえずメモ。

調べたSDKに同封のmxmlcのバージョン:Version 3.0 build 172357

flash.samplerパッケージ

  • flash.sampler.Sample
  • flash.sampler.NewObjectSample
  • flash.sampler.DeleteObjectSample
  • flash.sampler.getGetterInvocationCount
  • flash.sampler.getSetterInvocationCount
  • flash.sampler.getSize
  • flash.sampler.isGetterSetter
  • flash.sampler.getMemberNames
  • flash.sampler.clearSamples
  • flash.sampler.getSampleCount
  • flash.sampler._getInvocationCount
  • flash.sampler.getInvocationCount
  • flash.sampler.getSamples
  • flash.sampler.stopSampling
  • flash.sampler.pauseSampling
  • flash.sampler.startSampling

Flex3ではAIR向けにパッケージが沢山追加されているが、意外にもAIR向け以外のパッケージも追加されていた。使い方は調べていないが、名前から推測すると実行時のプロファイラと色々連携しそうな感じではある。

flash.utilsパッケージ

  • flash.utils.ObjectInput
  • flash.utils.ObjectOutput

どうみても対になる2つのクラスが。

toplevel

  • UninitializedError

toplevelに新しいエラーが追加されていた。初期化に失敗した時にthrowされる?

nitoyonnitoyon2007/07/25 09:23隠しAPIはどうやって調べているんでしょうか?

ConquestArrowConquestArrow2007/07/27 01:04Flex2SDK/Flex3SDKの中にframeworkディレクトリがありますが、このなかにはコンパイル時に共通で読み込まれるSWCファイルがあります。中でも重要なのはplayerglobal.swcファイルでコアAPIが含まれています。

で、このSWCファイルなんですが、実はSWFとXMLをZIPで固めたもので、拡張子を書き換えるとlibrary.swfとcatalog.xmlに解凍できます(ちなみに、library.swfは再生しない方がいい、とどこかに書いてありました)。catalog.xmlは文字通りそのSWCに含まれるクラスなどの情報を列挙したもので、playerglobal.swcの場合はコアAPIが列挙されることになります。これを除けば本来Undocumentなクラスやパッケージがみえる、というカラクリです。たとえば、まだ紹介していませんが、flash.profilerパッケージなど興味深い名前のものが幾つか見つかることでしょう…。

catalog.xmlで分かる情報は、パッケージ、クラス、パッケージ内関数で、クラスメソッドは分かりません。Flex2SDKの場合は、asc.jarなどを組み合わせた方法でクラスメソッドとその引数など大分細かくわかる方法があるのですが、Flex3SDKではどうも対策されてしまったようで、catalog.xml以上のことはわかりません。flash.system.System.gc()みたいな便利なメソッドが追加されているのかもしれませんが、残念ながらFlex3に関しては不明です。

MoheMohe2012/04/15 13:54Your post has lifted the level of debtae

トラックバック - http://actionscript.g.hatena.ne.jp/ConquestArrow/20070701