2

我试图摇动一个窗口,但在控制台中出现错误。我的代码:

  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;

其中 view 是一个 GroupBox 实例(来自 demobrowser/animation/login)。

4

3 回答 3

3

对不起噪音!如果我在“出现”侦听器中创建效果 - 代码运行良好。

    win.addListener ("appear", function (e) 
    {
      this.effect = new qx.fx.effect.combination.Shake (
        win.getContainerElement ().getDomElement ());
    }, this);
于 2010-03-31T11:56:51.053 回答
3

正如您自己发现的那样:在您创建摇动对象时,窗口的 DOM 元素并不存在。在 qooxdoo 中,我们一次创建所有 DOM 元素,这样浏览器就不必过于频繁地渲染。

在 window 触发“appear”事件(您也可以使用“resize”事件)时,DOM 元素已创建。请务必使用 addListenerOnce() 而不是 addListener()!否则,每次窗口再次可见时,如果它已被隐藏,您将创建一个新的抖动效果。;-)

于 2010-03-31T23:13:37.627 回答
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;
于 2011-03-01T14:07:35.443 回答