为什么我的Famo.us动画意外地向前和向后移动?

时间:2014-07-28 21:10:32

标签: javascript animation famo.us

我有一些基本的Famo.us代码,使用Scene来定义我的场景图。我只是试图旋转着名的徽标,但它不仅仅是旋转,它似乎也反复向前和向后移动(或收缩和增长)。

我的代码如下,但在它工作之前,你需要Famo.us v0.2.2然后在famous/core/Scene.js的第85行之后添加它:

        else if (transformDefinition instanceof Function) {
            transform = transformDefinition;
        }

这允许Scene定义中对象文字的transform属性接受函数。

这是我的代码,在yo famous生成的项目中运行,只在main.js中修改了Scene.js:

/* globals define */
define(function(require, exports, module) {
    'use strict';
    // import dependencies
    var Engine = require('famous/core/Engine');
    var Transform = require('famous/core/Transform');
    var Scene = require('famous/core/Scene');
    var Surface = require('famous/core/Surface');

    // create the main context
    var mainContext = Engine.createContext();

    // your app here
    mainContext.setPerspective(1200);

    var initialTime = Date.now();

    // define the main scene.
    var mainScene = new Scene({
        id: "root",
        size: function() {
            return [window.innerWidth, window.innerHeight];
        },
        target: [

            {
                id: 'background'
            },
            {
                id: "logoSpin",
                origin: [0.5, 0.5],
                transform: function() {
                    return Transform.rotateY(.003 * (Date.now() - initialTime));
                },
                target: {
                    id: 'logoContainer',
                    size: function() {
                        return [window.innerWidth*0.8, window.innerHeight*0.8];
                    },
                    target: {id: "logo",},
                },
            },
        ],
    });

    var background = new Surface({
        properties: { backgroundColor: '#25475E'},
    });

    var logo = new Surface({
        properties: {
            backgroundImage: 'url(/content/images/famous_logo.png)',
            backgroundPosition: 'center center',
            backgroundSize: 'contain',
            backgroundRepeat: 'no-repeat',
        },
        //content: '/content/images/famous-logo.png',
        classes: ['backfaceVisibility']
    });

    mainScene.id['logo'].add(logo);

    mainContext.add(mainScene);
});

我基本上使用默认的famo.us旋转徽标并使用Surface而不是ImageSurface,以便我可以将图像应用为背景图像并使用backgroundSize:'contain'属性来始终包含徽标风景。 我正在旋转表面,但我不明白为什么表面在旋转时会向前和向后移动。

为什么这样做?

1 个答案:

答案 0 :(得分:0)

显然,我的代码没有任何问题。我已经更新了我的系统库(我在Arch Linux中)它现在按预期工作,没有任何代码更改。代码保持完全相同。它必须是Chromium渲染中的某些内容在更新中被更改/修复了什么?