2010-03-31 3 views
2

나는 창문을 흔들기 위해 노력하고 있지만 콘솔에서 오류가 생겼다. 내 코드 :qooxdoo에서 창을 흔들어 버리는 방법?

var win = new qx.ui.window.Window ("Login"); 
    win.setLayout (new qx.ui.layout.Grow); 
    win.add (view); 

    this.effect = new qx.fx.effect.combination.Shake (
    win.getContainerElement().getDomElement()); 

    return win; 

보기는 (demobrowser/animation/login의) GroupBox 인스턴스입니다.

답변

3

혼자서 알아 냈던 것처럼, 쉐이크 개체를 만드는 순간에는 DOM의 DOM 요소가 없습니다. qooxdoo에서는 모든 DOM 요소를 한 번에 생성하므로 브라우저가 필요한 것보다 더 자주 렌더링 할 필요가 없습니다.

"resize"이벤트를 사용할 수도있는 "나타나는"이벤트가 발생하면 DOM 요소가 만들어집니다. addListener() 대신 addListenerOnce()를 사용해야합니다! 그렇지 않으면 창이 숨겨져있는 경우 창이 다시 표시 될 때마다 새로운 흔들기 효과를 만듭니다. ;-)

+0

감사합니다. addListenerOnce에 대한 정보는 매우 유용합니다! – W55tKQbuRu28Q4xv

3

죄송합니다. "나타나는"리스너에서 효과를 만들면 코드가 잘 작동합니다.

win.addListener ("appear", function (e) 
    { 
     this.effect = new qx.fx.effect.combination.Shake (
     win.getContainerElement().getDomElement()); 
    }, this); 
0
var win = new qx.ui.window.Window("Login"); 
win.setLayout(new qx.ui.layout.Grow); 
win.add(view); 
win.addListener("appear", function(){ 
    var effect = new qx.fx.effect.combination.Shake(win.getContainerElement().getDomElement()); 
    effect.start(); 
}, this); 
return win; 
관련 문제