2013-12-12 146 views
0

我在鈦合金工作,並創建一個彈出窗口作爲部件。我想要在右上角有近距離的圖像,所以它堅持退出彈出窗口。 所以我在widget xml文件中創建了2個單獨的窗口。一個只是保持密切的形象,一個是彈出窗口。
萬物看起來像我想,但我不能讓彈出窗口關閉?!鈦合金 - 關閉窗口

我試過了: $ .myWindow.close();

amd我試過了: var win = Widget.createController('myWindow','myWindowID')。getView(); win.close();

但沒有任何反應

這裏是我的xml - 代碼:

<Alloy> 
    <Window id="popup"> 
     <View id="myImagesViewIn" class="myImagesViewIn" onClick="closeWin"> 
      <ImageView id="myImageIn" class="myImageIN" /> 
     </View> 
    </Window> 
    <Window id="winImageOut" onClick="closeWindow"> 
     <View id="myImagesViewOut" class="myImagesViewOut" > 
      <ImageView id="myImageOut" class="myImageOut" /> 
     </View> 
    </Window> 
</Alloy> 

這裏是我的JS代碼:

var args = arguments[0] || {}; 

$.popup.transform = args.transform || ''; 

/* 
exports.setDataModalWindow = function(data) { 
$.lblModalWinHead.text = data.title; 
$.lblModalWinBody.text = data.text; 
}; 
*/ 
function fnCloseClick() { 
    $.viewModal.close(); 
} 

/* 
$.myImagesViewOut.addEventListener('click', function(e) { 
$.popup.close(); 
}); 
*/ 

function closeWin(e) { 
    $.myImagesViewOut.setVisible(false); 
    $.popup.close(); 

} 

function closeWindow(e) { 

    //$.popup.close(); 
    var wins = Widget.createController('widget', 'popup').getView(); 
    wins.setVisible(false); 
    alert('hejsan'); 
    //Ti.API.info('close'); 
} 

exports.openModalWindow = function(arg) { 

    //$.lblModalTitle.text = arg.title || 'foo'; 
    //$.lblModalText.text = arg.text || 'ff'; 

    var t = Titanium.UI.create2DMatrix().scale(0); 

    var args = { 

     transform : t 
    }; 

    var controller = Widget.createController('widget', args).getView(); 

    controller.open(); 

    // controller.animate(a2); 

    var t1 = Titanium.UI.create2DMatrix(); 
    t1 = t1.scale(1.2); 
    var a1 = Titanium.UI.createAnimation(); 
    a1.transform = t1; 
    a1.duration = 400; 

    controller.animate(a1); 

    var b1 = Titanium.UI.create2DMatrix(); 
    var a2; 
    a1.addEventListener('complete', function() { 
     b1 = b1.scale(1.5); 
     a2 = Titanium.UI.createAnimation(); 
     a2.transform = b1; 
     a2.duration = 400; 

     controller.animate(a2); 

    }); 
    // create the controller a keep the reference 

    /* 
    controller.setDetails({ 
    label: 'Are you sure you wish to log out?\n\nIf you do so you will no longer be able to take part in any challenges until you login again.', 
    ok: 'Log me out', 
    cancel: 'Cancel' 
    }); 
    */ 
    // now get a reference to the UI inside the controller 
    //var win = controller.getView(); 

    a1.addEventListener('complete', function() { 
     // simple reset animation 
     var t2 = Ti.UI.create2DMatrix(); 
     var a3 = Titanium.UI.createAnimation(); 
     a3.transform = t2; 
     a3.duration = 400; 
     controller.animate(a3); 

     $.winImageOut.open(); 

    }); 

}; 

回答

1

第一件事情就是要打開彈出式窗口,讓你應該打開那個窗口...

然後你應該關閉bot在closeWindow函數中的窗口。

function closeWindow(e) { 

    $.popup.close(); 
    $.winImageOut.close(); 
    alert('hejsan'); 
    //Ti.API.info('close'); 
} 

我不知道你的要求,但你應該只使用一個窗口,顯示彈出那麼它很容易爲你處理窗口的打開,關閉事件。

+0

感謝您的回覆! 事情是,我有關閉按鈕,我有一個單獨的窗口因爲我想讓近距離圖片貼在彈出窗口的一角之外。 模擬在單獨的窗口中設置關閉圖片的唯一方法,否則當我在px中使用減號時,圖片會在窗口的下角。 當我點擊關閉時,現在唯一發生的事情是圖片關閉,換句話說,關閉圖片所在的另一個窗口。 – AppfiXarna

+0

然後您應該打開一個屏幕高度和寬度的窗口,然後您可以使用視圖來顯示彈出內容,以便您可以在彈出窗口外部添加關閉按鈕 –

+0

是的,然後我可以將窗口設置爲非常透明,並且像您說的那樣,我使用視圖代替它。但是在開放/展示過程中動畫如何?我可以將動畫作爲視圖的show-function中的參數嗎?因爲我想從任何地方打開窗口/視圖來縮放1.2並恢復其大小?! – AppfiXarna