gpt4 book ai didi

javascript - 将对象数组传递给 greensocks 的贝塞尔曲线会导致错误

转载 作者:行者123 更新时间:2023-12-03 02:00:40 25 4
gpt4 key购买 nike

我想将先前定义的 x/y 坐标数组传递给 greensock 贝塞尔曲线插件,如下所示:

var ball = document.querySelector('#ball')

var startCircle = document.querySelector('#startPoint')
var controlCircle = document.querySelector('#controlPoint')
var endCircle = document.querySelector('#endPoint')

var startPoint = { x: 100, y: 100 }
var controlPoint = { x: 50, y: 200 }
var endPoint = { x: 200, y: 200 }

TweenMax.set(ball, startPoint)
TweenMax.set(startCircle, startPoint)
TweenMax.set(endCircle, endPoint)
TweenMax.set(controlCircle, controlPoint)

TweenMax.to(ball, 1, {
repeat: -1,
bezier: {
type: "quadratic",
values: [
startPoint,
controlPoint,
endPoint
]
}
})

我收到此错误

TypeError: undefined has no properties[Learn More]
TypeError: undefined has no properties[Learn More]
invalid css tween value: [object Object]
TypeError: this._beziers[d] is undefined[Learn More]

如果我更改valuesbezier反对字面意义的东西(比如 values: [{x: 1, y: 2}, {x: 3, y: 4}] 代码可以工作。有人知道为什么吗?您也可以在codepen上查看代码:https://codepen.io/heine/pen/aGmXee?editors=1010

编辑好的,我找到了一个答案。 TweenMax.set 显然改变了对象。因此,当我在传递到 TweenMax.set 之前复制这些 startPoint、controlPoint、endPoint 对象时,代码可以正常工作。

最佳答案

我检查了您的代码笔,当我控制台记录您的一个对象时:

TweenMax.set(endCircle, endPoint)
TweenMax.set(controlCircle, controlPoint)

console.log(startPoint);

/*TweenMax.to(ball, 1, {
repeat: -1,

我明白了:

{css:{x:100,y:100}}

可能是您的 tweenmax.set 方法正在改变对象。这可以解释为什么传递文字有效。

关于javascript - 将对象数组传递给 greensocks 的贝塞尔曲线会导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50051142/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com