これについて別の質問をしたところ、反応は良かったのですが、リスナーで例を試してみると、間違いがありました:
誰かがこのコードをテストして、EVENT_ONE クラスが見つからない理由を説明してくれる可能性はありますか?
void functionONE(){
result("\n dentro de la FUNCION ONE")
}
class EVENT_ONE : object{
void accionONE(object self){
result("\n dentro de accionONE()")
}
EVENT_ONE(object self) result("\n EVENT_ONE creado")
~EVENT_ONE(object self) result("\n EVENT_ONE destruido")
}
class KEY_TWO : object{
number evento
object o
void almacenaEventoTWO(object self, number pulsacion) evento = pulsacion
number accionTWO(object self, ImageDisplay disp, object keydesc){
number control=0
Result("\n key:"+keydesc.GetKeyDescriptor())
Result(" ("+keydesc.GetDescription()+")")
If ( keydesc.MatchesKeyDescriptor("esc")){
result("\n has pulsado escape")
control=1
disp.ImageDisplayRemoveKeyHandler(evento)
o = alloc(EVENT_ONE)
//number idObjecto2 = disp.ImageDisplayAddEventListener( o, "accionONE" )
o.accionONE()
}
return control
}
KEY_TWO(object self) result("\n KEY_TWO creado")
~KEY_TWO(object self) result("\n KEY_TWO destruido")
}
void main(){
image img = getFrontImage()
showimage(img)
imageDisplay imgDisp = img.imageGetImageDisplay(0)
object controlFinal = Alloc(KEY_TWO)
number idControlFinal = imgDisp.ImageDisplayAddKeyHandler( controlFinal, "accionTWO" )
controlFinal.almacenaEventoTWO(idControlFinal)
}
main()
キーリスナー (クラス KEY_TWO) が機能するためには、デスクトップに画像を配置する必要があります。このクラスでは、任意のキーを押すと出力し、「esc」を押すとキー リスナーを破棄して間違いを見つけます (「class EVENT_ONE not found」)。
一方、クラスKEY_TWOまたはEVENT_ONEから「functionONE」を呼び出すことは可能ですか??
お邪魔して申し訳ありませんが、間違いは見つかりません。
ありがとうございます。セルジオ