【问题标题】:integrating qooxdoo effects in qooxdoo window在 qooxdoo 窗口中集成 qooxdoo 效果
【发布时间】:2011-06-17 01:39:47
【问题描述】:

最好的方法是什么?例如:

当用户单击minimize 按钮时,我希望窗口消失(qx.fx.effect.core.Fade(DOM))。所以我在窗口类中这样做了:

this.addListener("appear", function() {
    this.minimizeEffect = /*fade effect*/;
},this);
this.addListener("beforeMinimize", function() {
    this.minimizeEffect.start();/*delay(1000);*/
},this);

我需要延迟,因为(我认为)否则窗口会在它刚刚开始褪色时最小化! 有什么解决办法吗?我什至用finish 效果事件尝试过,但没有运气。 谢谢!

编辑: 我的delay() 函数是错误的.. 所以它不会“编译”,这让我更加困惑:

function delay(ms){//this works (it fades ok)
    var date = new Date();
    var curDate = new Date();
    while(curDate-date < milis)//this is wrong, milis don't exist
        curDate = new Date();
}

function delay(ms){//it donesn't work (no fade)
    var date = new Date();
    var curDate = new Date();
    while(curDate-date < ms)//this is "good"
        curDate = new Date();
}

【问题讨论】:

    标签: window effects qooxdoo


    【解决方案1】:

    我建议如下

    var win = new qx.ui.window.Window("First Window").set({
      width: 300,
      height: 300,
      opacity: 0,
      showMinimize: false
    });
    
    var hideEffect;
    
    win.addListenerOnce('appear',function(){
      var el = win.getContainerElement().getDomElement();
      var showEffect = new qx.fx.effect.core.Fade(el).set({
        from: 0, to: 1 });
      hideEffect = new qx.fx.effect.core.Fade(el).set({
        from: 1, to: 0 });
      hideEffect.addListener('finish',function(e){
        win.setOpacity(0);
        win.close();
      });
      showEffect.addListener('finish',function(){
        win.setOpacity(1);
      });
      showEffect.addListenerOnce('finish',function(){
        win.addListener('appear',function(){
          showEffect.start();
        });
      });
      showEffect.start();  
    });
    
    
    win.addListener('beforeClose',function(){
      if (win.getOpacity() == 1){
        hideEffect.start(); 
        e.stopPropagation();
      }
    });
    
    this.getRoot().add(win, {left:10, top:30});
    var openBtn = new qx.ui.form.Button('Open Window');
    openBtn.addListener('execute',function(){win.open();});
    this.getRoot().add(openBtn, {left:10, top:10});
    

    使用http://tinyurl.com/3v72sk3在 qooxdoo 操场上运行此程序

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多