我有一些基本的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'
属性来始终包含徽标风景。
我正在旋转表面,但我不明白为什么表面在旋转时会向前和向后移动。
为什么这样做?
答案 0 :(得分:0)
显然,我的代码没有任何问题。我已经更新了我的系统库(我在Arch Linux中)它现在按预期工作,没有任何代码更改。代码保持完全相同。它必须是Chromium渲染中的某些内容在更新中被更改/修复了什么?