基本动画钛

时间:2013-09-23 07:14:27

标签: titanium titanium-mobile titanium-modules titanium-alloy

我需要在项目的视图之间进行交叉淡入淡出动画。哪个是制作动画和创建最佳视图/窗口的最佳方法。建议我为这项工作提供解决方案?我在测试环境中使用Titanium 3.1.2.GA,Alloys和Android Emulator。任何例子都可能是适用的?我的thread在appcelerator论坛

INDEX.XML

<Alloy>
    <Window id="fblogin" class="container">
        <Require src="loginsuccess" id="loginsuccess"></Require>
        <Require src="loginFailure" id="loginFailure"></Require>
        <Require src="loginPage" id="loginPage"></Require>
    </Window>
</Alloy>

loginPage.xml

<Alloy>
    <View class="container">
        <LoginButton ns="Alloy.Globals.Facebook"/>
        <Button title="Google"></Button>
    </View>
</Alloy>

loginFailure.xml

<Alloy>
    <View class="container">
        <Label>Login Failed. Please try again later.</Label>
    </View>>
</Alloy>

loginsuccess.xml

<Alloy>
    <View class="container">
        <Label>Login Successful</Label>     
    </View>
</Alloy>

index.js

var animation = require('alloy/animation');
var loginPage = $.loginPage;
var loginsuccess = $.loginsuccess;
var loginFailure = $.loginFailure;
function loginFails(){
    animation.crossFade(loginPage, loginFailure, 500, function(){});
}
function loginSuccess(){
    animation.crossFade(loginPage, loginsuccess, 500, function(){});
}
$.fblogin.open();

1 个答案:

答案 0 :(得分:0)

请参阅您的链接中的问题说明:

  

现在,如果我调用loginFails()或loginSuccess(),那么它显示错误,因为它在控制器索引中,而不是在其他视图控制器中。怎么解决这个问题?

为了引用里面的元素一个必需的视图,你必须使用getView('elementId')。

<强> INDEX.XML

<Alloy>
    <Window id="fblogin" class="container">
        <Require src="loginsuccess" id="loginsuccess"></Require>
        <Require src="loginFailure" id="loginFailure"></Require>
        <Require src="loginPage" id="loginPage"></Require>
    </Window>
</Alloy>

<强> loginsuccess.xml

<Alloy>
    <View class="container" id="successContainer" visible="false">
        <Label>Login Successful</Label>     
    </View>
</Alloy>

<强> index.js

var successView = $.loginsuccess.getView('successContainer');

您现在可以在successView上执行交叉淡入淡出。

修改
在容器视图中添加了visible =“false”