2011-12-29 53 views
3

sparkデータグリッドアイテムレンダラーを作成しようとしています。方法以来同じメソッド名を持つスーパーインターフェイスとスーパークラス

public function get hovered():Boolean 
{ 
} 

public function set hovered(value:Boolean):void 
{ 
} 

:このアイテムレンダラーは、私がIGridItemRendererを実装する場合、私は次の方法で問題が生じています、インターフェイスメソッドを実装する必要があるチェックボックスを拡張し、IGridItemRenderer

public class CellCheckBoxItemRenderer extends CheckBox implements IGridItemRenderer 

を実装しますチェックボックス

EDIT機能

署名からも継承されます
//spark checkbox signature 
protected function get hovered():Boolean 
protected function set hovered(value:Boolean):void 

はと署名は、上記の問題はCheckbox関数を保護として設定されているのに対し、インタフェースは、設計によってのみ、公衆機能のために署名を指定することであるIGridItemRenderer

+0

クラスとインターフェイスのメソッドに同じシグネチャがありますか? – Eugeny89

+0

@ Eugeny89いいえ、彼らは – Mansuro

+0

ここで関数の署名を挙げることはできませんか?たぶん私または他の人がいくつかの回避策をアドバイスする – Eugeny89

答えて

1

IGridItemRendererの実装がより重要な部分だと思うので、データグリッドで使用することができます。 CheckBoxはちょうど機能性を提供しています。あなたの意見に矛盾がある場合は、それを拡張する必要はありません。

public class CellCheckBoxItemRenderer implements IGridItemRenderer { 

    private var checkBox:CheckBox; 

    public function getCheckBox { 
     return checkBox; 
    } 

    //... 
} 

CheckBoxは、任意の有用なインターフェースを実装した場合、また、あなたのレンダラでそれらを実装し、チェックボックスのメソッドを委譲、あなたは全体のチェックボックスをカプセル化させている可能性があります。しかし、ここではそうではありません。

0

インタフェースに属します。

唯一の解決策:

  • インタフェース
  • 変更Checkboxから宣言を削除CellCheckBoxItemRenderer
  • からインタフェース/ Checkboxクラスを削除するので、hoveredそれはかもしれない
  • 公共財産でありますas3コモンズバイトコードプロジェクトを使用してアクセサーを動的に変更することができます(http://www.as3commons.org/as3-commons-bytecod e/emit.html)、私は100%確信していません。
関連する問題