AS2でもドキュメントクラスを設定したい [Edit]

AS3から導入されたドキュメントクラスという概念があります。
慣れないうちは混乱のもとでもあったのですが、いざ使いだしてみると、これがなかなか便利なことに気付きました。
特に、あるSWFファイルをMovieClip以外のクラスのインスタンスとして外部から読み込めるのは、かなり活用の甲斐がありそうです。

しかし、自分が今動いているプロジェクトはAS2ベース…。

そこで、なんとかAS2でも同等のコンセプトを実現できないものかと試行錯誤を行っていたのですが、検索中に素晴らしくスマートな方法が見つかりましたので紹介しておきます。

基本的に以下のコードをルートタイムラインの1フレーム目に記述するだけでO.K.です。
(HogeClassというクラスを設定する場合)

import HogeClass

this.__proto__ = Function(HogeClass).prototype;
Function(HogeClass).apply(this, null);

prototypeを使うところまでは自分でも想像が回りましたが、Functionをこのように使うとは目から鱗です。

ネタ元は、AS3用のアニメーションライブラリでも有名な、boostworthy.com。
こちらではオリジナルのクラスを作って設定するやり方が書かれていますので、気になる方は併せて読んでみてください。

コメント

この記事にコメントを書く

記事に対するテクニカルな質問はご遠慮ください(利用規約)。

その他の記事