2011-12-13 11 views
4

transitionend Mozilla CSS3プロパティを使用して、CSS3の移行が完了したときにイベントを発生させます。私は同様の機能のためにタイマーを使うことができると知っていますが、CSS3のアニメーションの精神で、ブラウザにそれを渡しましょう。このイベントの実際はexampleです。CSS3 GWT TransitionEndリスナーの実装方法

rub:GWT 2.4は、DOM.setEventListenersupported event typesでこのイベントをサポートしていません。

DOM.sinkBitlessEvent(element, "transitionend"); 

しかし、デバッガを使用しては、(再バインドを経由して)それが唯一のサポートことが判明:

  • のdragEnter
  • のdragExit
  • のdragoverドロップ

を私が使用してみましたしたがって、ネイティブイベントハンドラを書くことが不十分ですJSNIコードは、私を最大でmemory leaksに開きます.GWTの要素のうち、GWTによってサポートされていない要素のイベントをどのように聞き取りますか?参考

、以下GWT 2.3 DomImplStandard.javaにgecko_1.8順列のためのビルドものである:

protected native void sinkBitlessEventImpl(Element elem, String eventTypeName) /*-{ 
    if (eventTypeName == "dragenter") 
     elem.ondragenter = @com.google.gwt.user.client.impl.DOMImplStandard::dispatchEvent; 
    if (eventTypeName == "dragexit") 
     elem.ondragexit = @com.google.gwt.user.client.impl.DOMImplStandard::dispatchEvent; 
    if (eventTypeName == "dragover") 
     elem.ondragover = @com.google.gwt.user.client.impl.DOMImplStandard::dispatchEvent; 
    if (eventTypeName == "drop") 
     elem.ondrop  = @com.google.gwt.user.client.impl.DOMImplStandard::dispatchEvent; 
    }-*/ 

答えて

1

それはmgwtは(とりわけ)、遷移イベントを管理するシーム。 com.google.gwt.user.client.impl.DOMImplの代わりに、独自のバージョンがあります。 module descriptorを参照してください。 しかし、彼らたDOMImpl(例えばDOMImplMobileSafari。)の1を見て、彼らはネイティブのイベントハンドラを記述します。

//transistion end 
if (chMask & 0x8000000) { 
    if(bits & 0x8000000){ 
     elem.addEventListener('webkitTransitionEnd', @com.google.gwt.user.client.impl.DOMImplStandard::dispatchEvent, false); 
    } 
} 

私は、彼らはメモリリークを管理する方法を理解していません。

+0

この機会を実際のクライアントサイドコードでどのように処理するのですか? – alexp

関連する問題