ムービークリップ内でaddChildをオーバーライドする方法を見てきましたが、最上位のルートレベルでオーバーライドできますか?のように、メインタイムラインでオーバーライドします。
3 に答える
1
これがあなたがする必要があることです。まず、FLAのドキュメントクラスを作成します。この場合、私はそれをMain.asと呼んでいます。
package
{
import flash.display.DisplayObject;
import flash.display.MovieClip;
public class Main extends MovieClip
{
public function Main()
{
var spr : MovieClip = new MovieClip();
spr.graphics.beginFill(0x666666, 1);
spr.graphics.drawRect(0, 0, 100, 100);
addChild(spr);
}
override public function addChild (child : DisplayObject) : DisplayObject
{
// Do whatever it is you need to do here, but remember to call super.addChild() if you actually want to get anything added to the stage.
trace ("I'm gonna add the heck out of this child: " + child);
return (super.addChild(child));
}
}
}
次に、FLAでドキュメントクラスを設定する必要があります(ステージオブジェクトが選択されていないプロパティパネルを確認してください)。
于 2011-05-31T22:10:28.723 に答える
0
独自のDocumentクラスを作成し、そのクラスでaddChildをオーバーライドできます。
于 2011-05-31T21:53:01.987 に答える
0
addChildメソッドを継承するクラス内でオーバーライドできます。例:
package
{
import flash.display.MovieClip;
public class ShadowBox extends MovieClip
{
private var container:MovieClip = new MovieClip();
public function ShadowBox( s:ShadowBoxSettings )
{
super.addChild( container );
}
override public function addChild( child:DisplayObject ):DisplayObject
{
container.addChild( child );
return child;
}
}
}
ソース:
于 2011-05-31T22:08:52.330 に答える