2013-03-20 21 views
1

這個奇怪的bug一直困擾着我連續兩天!Titanium中的不可預知的z-index

我有5個視圖,每個視圖都包含一個滾動視圖,並在它們被點擊時在它們上設置z-index。出於某種奇怪的原因,z-index爲3的那個總是顯示在z-index爲4的頂部,除非它是第二個被點擊的元素。究竟是怎麼回事?!

請檢查下面的代碼。我正在使用Alloy。顯然不是生產代碼,但我意識到它可能不是我的代碼,所以我使用下面的代碼對它進行了測試。十分感謝你的幫助!

的合金標記:

<!-- index.xml --> 
<Alloy> 
    <Window id="container"> 
    <View id="v0" class="test" top="0"> 
     <ScrollView borderColor="green"> 
     <Label/> 
     </ScrollView> 
    </View> 
    <View id="v1" class="test" top="40"> 
     <ScrollView borderColor="blue"> 
     <Label/> 
     </ScrollView> 
    </View> 
    <View id="v2" class="test" top="80"> 
     <ScrollView borderColor="red"> 
     <Label/> 
     </ScrollView> 
    </View> 
    <View id="v3" class="test" top="120"> 
     <ScrollView borderColor="purple"> 
     <Label/> 
     </ScrollView> 
    </View> 
    <View id="v4" class="test" top="160"> 
     <ScrollView borderColor="teal"> 
     <Label/> 
     </ScrollView> 
    </View> 
    </Window> 
</Alloy> 

這裏的主腳本:

// index.js 
zs = []; 

changeOrder = function(){ 
    for(var i=0; i<5; i++){ 
    z = zs[i]; 
    v = $["v#{i}"]; 
    // Set the supposedly correct order of view stack 
    v.setZIndex(z); 
    // Display the order for debugging 
    v.children[0].children[0].setText(z); 
}; 

$.v0.addEventListener("click", function(){ 
    zs = [5,4,3,0,1]; 
    changeOrder(); 
}); 

$.v1.addEventListener("click", function(){ 
    zs = [1,5,4,3,0]; 
    changeOrder(); 
}); 

$.v2.addEventListener("click", function(){ 
    zs = [0,1,5,4,3]; 
    changeOrder(); 
}); 

$.v3.addEventListener("click", function(){ 
    zs = [3,0,1,5,4]; 
    changeOrder(); 
}); 

$.v4.addEventListener("click", function(){ 
    zs = [4,3,0,1,5]; 
    changeOrder(); 
}); 

$.container.open() 

鈦移動3.0.22合金1.0.0 iPhone模擬器6.1 OSX 10.8

回答

0

看起來像你將PHP與javascript混合,因此對視圖元素的引用有問題。此外,你有意見設置的方式是錯誤的,所以當你點擊最上面的視圖,其他人變得不可點擊,但是,這是你想要做的。此:

v = $["v#{i}"]; 

應該是:

V = $ [ 「V」 + 1];

+0

對不起,我的壞!我使用CoffeeScript進行編程,並手動將代碼轉換爲JavaScript的文本。它應該具有與所描述的相同的效果,因爲運行時引用似乎是有效的。 – 2013-03-20 19:58:07

+0

沒有問題,我已經確認它確實與上述修復一起工作。 – Macgyver 2013-03-20 20:06:15

+0

感謝您試用代碼!當你說它確實有效時,你的意思是z-索引按預期工作,或者問題確實存在?鑑於我的自我,我很想知道這是我的錯還是Appcelerator的。 ; P – 2013-03-21 00:10:17