【问题标题】:Basic Animation Titanium基本动画钛
【发布时间】:2013-09-23 07:14:27
【问题描述】:

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

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();

【问题讨论】:

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


    【解决方案1】:

    参考链接中的问题描述:

    现在如果我调用 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"

    【讨论】:

    • 谢谢mwfire。我会尽力让你知道。
    • mwfire -- 动画后显示 loginFailure 视图。如果我将 index.xml 重新排列如下&lt;Require src="loginFailure" id="loginFailure"&gt;&lt;/Require&gt;&lt;Require src="loginsuccess" id="loginsuccess"&gt;&lt;/Require&gt;&lt;Require src="loginPage" id="loginPage"&gt;&lt;/Require&gt;,那么它会显示 LoginSuccess 视图。有什么地方出错了吗?
    • 我还没有使用淡入淡出动画,但我假设您必须将两个视图 loginSuccess 和 loginFailure 都设置为visible=false。您可以在相应的 .tss 文件中执行此操作,也可以直接在标记中执行此操作,例如 &lt;View class="container" id="successContainer" visible="false"&gt;...
    • 我没有声望来支持 mwfire。有用。非常感谢。 visible="false" 使其具有动画效果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多