2014-12-04 184 views
1

我正在研究一個簡單的Alloy應用程序。我有一個觀點,我想橫向來回移動(從而移動,然後回到原來的位置)。鈦:來回動畫視圖(回到原始位置)

我寫了這個功能

function move(view) { 

    var origin = view.getCenter(); 

    console.log("origin ", origin); 
    console.log("rect ", view.getRect()); 

    var forth = Titanium.UI.createAnimation(); 
    forth.duration = 700; 
    forth.center = { 
    x: 0 
    }; 
    forth.addEventListener('complete', function() { 
    view.animate(back); 
    }); 

    var back = Titanium.UI.createAnimation(); 
    back.duration = 300; 
    back.center = { 
    x: origin.x 
    }; 
    back.addEventListener('complete', function() { 
    alert('completed'); 
    }); 

    view.animate(forth); 
} 

我你運行它,它崩潰的x: origin.x因爲origin是不確定的。此外,view.centerview.rect都未定義,因此我不可能存儲原始位置。

任何幫助?

感謝

PS:代碼已經在iOS模擬器進行了測試,雖然意在Android和iOS兼容。

回答

0

爲什麼不動畫左邊的位置並使用view.getRect()?

var origin = view.getRect(); 

//console.log("origin ", origin); 
console.log("rect ", view.getRect()); 

var forth = Titanium.UI.createAnimation(); 
forth.duration = 5000; 
forth.left = 0; 

forth.addEventListener('complete', function() { 
    view.animate(back); 
}); 

var back = Titanium.UI.createAnimation(); 
back.duration = 5000; 
back.left = origin.x; 


back.addEventListener('complete', function() { 
    alert('completed'); 
}); 

view.animate(forth); 
相關問題