Spine Controllerを作成しましたが、そのメソッドの1つからカスタムイベント「Create」をトリガーしたいと思います。次に、別のSpineControllerにそのイベントをリッスンしてもらいたいと思います。これは、Spine.jsのカスタムイベントメソッドを使用してどのように可能ですか?
質問する
839 次
2 に答える
3
カスタムイベントはグローバルである必要はありません。コントローラインスタンスごとにイベントをトリガー/バインドできますが、コントローラクラスごとにはできません。例えば
class PresenterController extends Spine.Controller
giveSpeech: (message) ->
@trigger("speech",message)
class App extends Spine.Controller
addKeynote: ->
@speaker = new PresenterController
@speaker.bind("speech",@listen)
listen: (message) =>
alert("I heard " + message)
しかし、PresenterController.bind( "speech")のようなものを取得することはできません
その理由は、Modelはクラス@extend Event
にメソッドを追加するを使用しますが、Controllerはインスタンスにメソッドを追加するを使用するためです。モデルは、トリガー、バインド、およびバインド解除の独自の実装を定義するため、インスタンスバインディングを持っているように見えます。@include Event
于 2012-06-03T02:52:46.567 に答える
1
このようにSpineでイベントをトリガーできます
Spine.trigger "Create"
あなたが他のコントローラーである場合、このようなメソッドにイベントをバインドできます
Spine.bind "Create", @create
このコントローラーでcreateという名前のメソッドを定義する必要があります。
create: =>
# Create action
カスタムイベントはグローバルであるため、コントローラー名をプレフィックスとして使用することをお勧めします。次のように、ControllerName:Createを使用できます。
Spine.trigger "ControllerName:Create"
于 2012-05-08T10:36:52.233 に答える