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

ご自身でお気づきのとおり、シェイク オブジェクトを作成した時点では、ウィンドウの DOM 要素は存在しません。qooxdoo では、ブラウザが必要以上に頻繁にレンダリングする必要がないように、すべての DOM 要素を一度に作成します。

ウィンドウが「appear」イベント (「resize」イベントを使用することもできます) を起動した時点で、DOM 要素が作成されています。addListener() の代わりに必ず addListenerOnce() を使用してください。そうしないと、ウィンドウが非表示になっている場合に、ウィンドウが再び表示されるたびに新しい揺れ効果が作成されます。;-)

于 2010-03-31T23:13:37.627 に答える
3

ノイズすみません!「appear」リスナーでエフェクトを作成すると、コードがうまく機能します。

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