私は現在ActionScriptで新しく、クラスがInterfaceを実装するInterfaceおよびClassを作成しています。 srcとcomフォルダの両方にInterfaceとClassを作成しました。ここまで私が今までにしたコードです。FLEX 3、ActionScript 3.0でのActionScriptクラスおよびインターフェイスの操作中にエラーが発生する
インタフェース
package com
{
public interface TestData
{
function getInput(str:String):void
function getOutput():String
}
}
クラス
package com
{
public class EntityEL implements TestData
{
public var uname:String;
function getOutput():String
{
return uname;
}
function getInput(str:String):void
{
uname = str;
}
public function EntityEL()
{
}
}
}
MXMLファイル私はエラー "1044取得しています
public var etn:EntityEL = new EntityEL();
public function btnClick():void
{
etn.getInput(value.text);
Alert.show(etn.getOutput());
}
<mx:Button label="Button Click" click="{btnClick();}" />
<mx:TextInput id="value" />
:名前空間COMのインタフェース方式か、getInput:TESTDATAによって実装されていませんクラスcom:EntityEL。 "
この問題を解決するために私を助けてください。
EntityELクラスの実装されたメソッドに 'public'を追加してみてください。私はクラスがインターフェイスを実装するときに、パブリックメソッドでなければならないと考えました。 – mask8
答えをありがとう。 私は、Interfaceよりもpublicを宣言していますか?そのクラスを作成し、そのクラスのメソッドを呼び出します。 –
まあ、インタフェースを定義する目的はそれぞれの場合によって異なります。ここの例では、インターフェイスを使用する他のクラスが存在しない場合、インターフェイスを作成する必要はないと思います。私はそれが公的であろうと私的なものであろうとは思わないのですか? – mask8