- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用 tween.js 为多个屏幕对象设置动画。
这些对象被组织在一个数组中,我想将每个单独的元素传递给补间函数,该函数大致如下:http://jsfiddle.net/8L9Dz/
var target1 = document.getElementById( 'target1' );
var target2 = document.getElementById( 'target2' );
targets.push(target1);
targets.push(target2);
for(var i = 0; i < 2;i++ ){
var tween = new TWEEN.Tween( targets[i].dataset ) // i'th element
.to( { rotation: 360, y: 300 }, 750 )
.easing( TWEEN.Easing.Cubic.InOut )
.onUpdate( function() {
updateBox( targets[i], this );
})
.start();
}
当我在本地运行代码时,Firefox 告诉我“盒子未定义” - 这对应于 updateBox(...) 中的第一行
我猜这与函数的关闭有某种关系,但我不是 JavaScript 专家 - 有人知道吗?
最佳答案
尝试按如下方式重写代码以避免循环变量的闭包绑定(bind):
var tween = new TWEEN.Tween( targets[i].dataset ) // i'th element
.to( { rotation: 360, y: 300 }, 750 )
.easing( TWEEN.Easing.Cubic.InOut )
.onUpdate( (function(id, ctx) {
return updateBox(targets[id], ctx);
})(i, this) )
.start();
onUpdate
应该接收一个函数作为参数,我错过了。请尝试如下:
...
.onUpdate( (function(id, ctx) {
return function() { updateBox(targets[id], ctx) };
})(i, this) )
...
this
不应传递给 onUpdate
,因此请尝试以下操作:
var tween = new TWEEN.Tween( targets[i].dataset ) // i'th element
.to( { rotation: 360, y: 300 }, 750 )
.repeat(Infinity)
.easing( TWEEN.Easing.Cubic.InOut )
.onUpdate( (function(id) {
return function () { updateBox(targets[id], this); };
})(i) )
.start();
注意:在您的 .zip 中,您没有在 Tween 构造函数中使用 Targets[i].dataset,请注意
关于javascript - 将数组传递给 tweenjs 将不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25146756/
我正在尝试用 TweenJS 做一些非常简单的事情,在使用 GSAP 后,我发现它不太直观。只是想用 CSS/HTML 补间 div - 已经设置为包含图像: function init() {
我希望你们中的一些人使用过 tween.js(create.js 库套件的一部分)。 我有一个 JS Fiddle 来向您展示我的问题:http://jsfiddle.net/qyp8Y/1/ 我在每
情况 我需要循环遍历一个数组,并根据每个项目的值运行补间。因此,对于数组中的每个项目,必须有一个单独的 Tween 实例。根据TweenJS documentation ,get() 方法“返回一个新
我已经在这个问题上坚持了大约一周,无法弄清楚为什么容器内的形状实例在以 60 fps 的速度制作动画时变得模糊。我的容器包含一个形状实例。形状实例与一个图形实例相关联。似乎有一个白色的模糊物追随着动画
我正在尝试以圆形路径旋转一只鸟,但问题是 to 方法没有提供太多控制来做确切的事情,我正在尝试将鸟头向上移动或向下旋转。 这是我的 fiddle http://jsfiddle.net/HF765/1
我的第一个 Stackoverflow 问题。补间似乎运行了,因为它在最后调用了暴力函数。但是,没有补间发生。 window.onload=init(); function init() {
我正在尝试在名为 TweenJs(CreateJs 套件的一部分)的 JavaScript 库中的“单击”事件上创建简单的动画,但似乎动画仅在我第一次单击矩形时更新显示。动画第一次结束后,每次单击时,
我正在使用tweenJS为了使我的页面中的一些图像具有动画效果。我正在创建这样的补间: star = new createjs.Bitmap(starPic.src); stage.addChild(
我在为 x=0 到 x=400 的图像设置动画时遇到了问题。我正在使用 easeljs 和 tweenjs。这是我的代码:Javascript:
我正在开发一种工具,通过更新对象数组来执行动画序列。该数组将具有根据不同要求定制动画的所有参数。该工具是用 JavaScript 开发的,并利用 createJS 库和 TweenJS 来动画对象。对
我想使用 tween.js 为多个屏幕对象设置动画。 这些对象被组织在一个数组中,我想将每个单独的元素传递给补间函数,该函数大致如下:http://jsfiddle.net/8L9Dz/ var ta
我遇到的问题是这样的: 我想让位图移动到一些点,这些点存储在一个数组中。我如何使用 tweenJS 来获得这个? 我尝试的第一种方法是这样的: var points = [{x:0, y:0}, {x
我有一个例子,我想用easel.js位图创建动画,但它似乎不起作用。在这个项目中,我使用preload.js来加载图像;卡中裁剪卡图片;创建 Bitmap 对象并尝试使用 tween.js 为该位图设
我正在使用 eaeljs 和 tweenjs 来制作多条线的动画,这些线通过一个点从一个位置绘制到另一个位置,使其成为一条曲线,并在该线的前面附加了一个 img。我为此使用补间插件 MotionGui
在此示例中,预期结果是使圆圈淡出然后淡入。这与链接一起工作正常。代码片段中的注释行 createjs.Tween.get(circle).wait(0).to({alpha:0.1},2000).wa
我最近切换到 EaselJs 并想为圆圈的颜色设置动画。 到目前为止我得到的代码是这样的: var shape = new createjs.Shape(); shape.graphics.begin
我正在尝试使用 TweenJs 设计一个简单的动画..让我们考虑两个人玩 throw 球。我设法使球沿直线移动。但它必须看起来很现实。球应该像重力一样沿着弯曲的路径移动。我如何在路径中定义“检查点”?
我在 CreateJS/TweenJS 中有多个 Tweens: createjs.Tween.get(elem1).to({..}); createjs.Tween.get(elem2).to({.
我对 createJS 还很陌生 - 我想实现像倒计时器动画一样的效果: 我偶然发现了这个issue其中有这个fiddle - 我想实现这样的效果,但我想创建一个弧形: 我尝试调整代码并更改点值,但它
有人告诉我补间对象中的 .to() 方法将图形对象移动到 Canvas 上的精确点。但是,当我运行下面的代码时,.to() 方法将 400 像素添加到圆的原始 x 位置,即 165。因此,圆将变为 5
我是一名优秀的程序员,十分优秀!