1

我需要在我的项目的视图之间做一个淡入淡出动画。这是制作动画和创建视图/窗口的最佳方式,哪一种是最好的。建议我解决这个问题?我在测试环境中使用 Titanium 3.1.2.GA、Alloys 和 Android Emulator。任何例子都可以appriciated?我在appcelerator论坛中的帖子

索引.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>

登录页面.xml

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

登录失败.xml

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

登录成功.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();
4

1 回答 1

0

参考链接中的问题描述:

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

为了所需视图中引用元素,您必须使用 getView('elementId')。

索引.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>

登录成功.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"

于 2013-09-23T13:48:42.253 回答