钛:左/右滑动窗口

时间:2011-07-12 13:50:28

标签: animation titanium appcelerator

我想将当前打开的窗口向左滑动,然后将新窗口从右侧滑动到屏幕上。我使用以下代码来完成工作:

    var newWindow = Titanium.UI.createWindow({
        url:'new.js',
        backgroundImage:'ui/bg.gif',
        zIndex: 10,
        left: "100%",
        width: "100%"
    });


    var slide_it_left = Titanium.UI.createAnimation();
    slide_it_left.left = 0; // to put it back to the left side of the window
    //slide_it_left.curve = Titanium.UI.ANIMATION_CURVE_LINEAR;
    slide_it_left.duration = 500;

    var slide_it_right = Titanium.UI.createAnimation();
    slide_it_right.left = "-100%";
    //slide_it_right.curve = Titanium.UI.ANIMATION_CURVE_LINEAR;
    slide_it_right.duration = 500;    

    currentWindow.animate(slide_it_right);
    newWindow.open(slide_it_left);

然而,当它们滑入/滑出时,两个窗口之间似乎有20px的空间。我不知道这是怎么可能的,因为currentWindow的宽度为100%,而新的宽度也是如此。我试图隐藏那个黑色空间,通过调整曲线/缓动,但没有好的结果,你仍然可以注意到他们之间的黑色空间无论如何。有任何想法吗?谢谢!

更新 通过使动画持续时间超慢,我注意到在开始和结束时它们完全对齐,但在它们之间它们不是。通过使动画非常快,两个窗口之间的空间很大。这意味着必须有缓和的东西..这应该使动画没有缓和,没有?:“Titanium.UI.ANIMATION_CURVE_LINEAR”。但不知怎的,它并没有解决问题。不知道缓和来自何处。

4 个答案:

答案 0 :(得分:2)

如果您使用标签,只需在同一标签中打开新窗口。

tab1.open(win,{animated:true});

答案 1 :(得分:1)

如果您将窗口宽度和左/右设置为像素值,它是否有效?

答案 2 :(得分:0)

不,它不会起作用。无论如何我在我的一个应用程序中有相同的要求,所以不使用窗口我使用了视图并从右到左动画它们并使用App全局堆栈管理它们。希望这会有所帮助。

答案 3 :(得分:0)

由于此问题显示在搜索appcelerator幻灯片左侧动画,这里对我有用

win.open({
    activityEnterAnimation: Ti.Android.R.anim.slide_in_left,
    activityExitAnimation: Ti.Android.R.anim.slide_out_right
});

检查文档

http://docs.appcelerator.com/platform/latest/#!/api/openWindowParams