がるの健忘録 このページをアンテナに追加 RSSフィード

2009-06-14

[]memo

んと…なんかclassなのにオーバライド出来ないとか何とかって微かに耳にする…大丈夫でけた(笑


普通に書くと怒られるので。

override public function foo():String

ってな感じで、明示的に指定する必要があるぽ。

上位へのアクセスはsuper演算子が有効なので。

super.foo()

などの書式をもちう。


で…

http://livedocs.adobe.com/flex/2_jp/docs/00001638.html

Flex は自動的にコンストラクタ内で super() メソッドを呼び出してスーパークラスコンストラクタを実行しますが、メソッドオーバーライドでは明示的に super.methodName() を呼び出す必要があります。明示的に呼び出さないと、スーパークラスのメソッドは実行されません。

とあるはずなんだけど。

別のURIにあるサンプルには

http://livedocs.adobe.com/flex/201_jp/html/ascomponents_147_12.html

package myComponents
{
    import mx.controls.Alert;
    import mx.containers.HBox;
    import flash.display.DisplayObject;

    public class HBoxWithAlert extends HBox
    {
        // Define the constructor.  
        public function HBoxWithAlert() 
        {
            super();
        }       

      // Define the override.
      override public function addChild(child:DisplayObject):DisplayObject {
        
            // Call super.addChild().
            super.addChild(child); 
            
            // Open the Alert box.
            Alert.show("Item added successfully");

            return child;
        }
    }
}

ってな感じで、コンストラクタでも明示的にcallしてたりする。

とりあえず書いておいたほうがいいのかな?

面倒なんで未テストw


…よかった「オーバライド出来ない」とかが真実だったら結構どん引きするところだった orz

[]memo

「複数のプロジェクトにまたがる共通なファイル」とか「クラス」とかの作り方にかんする覚え書き。


まず、適当なフォルダを作る。ここが実態。


んで…フォルダ作成の「拡張」で、シンボリックリンクは、はれる。ので、上のフォルダにln -sしておく。

ただ、このままだとLinkパスに載らないので。


プロパディ->Flexビルドパス->ソースパス->フォルダの追加


で、Linkパスに乗せてやる。

これで「複数プロジェクトにまたがる共通ファイル」が、とりあえず、持てる。