【问题标题】:How to create shaking randomly images如何创建随机抖动的图像
【发布时间】:2020-10-08 22:47:06
【问题描述】:

我想在 Appcelerator TItanium 的 imageView 中制作抖动图像

我想做的是随机改变一个imageView的顶部位置和左侧位置,就像一个摇晃的图像。

OriginalImageLeft = image.left;
OriginalImageTop = image.top;

if (Math.random() > 0.5){
    value = -1;
} else {
    value = 1;
} 

var viewAnimate = Ti.UI.createAnimation({
    duration: 2000,
    repeat:100,
    left: OriginalImageLeft + (Math.random() * 20 * value),
    top: OriginalImageTop + (Math.random() * 20 * value),
});

image.animate(viewAnimate)

但代码不起作用,它只计算一次 MathRandom() 函数,因此抖动不起作用。

有什么想法吗?

【问题讨论】:

    标签: titanium appcelerator


    【解决方案1】:

    创建一个函数来计算位置+做一次动画。然后使用动画complete 事件再次调用该函数,以便计算新位置+再次运行动画。如果您想停止它,请不要再次调用该函数(例如,在函数调用周围添加一个计数器/if-case)。

    您的代码无法运行的简短信息:
    OriginalImageLeft + (Math.random() * 20 * value) 部分被发送到本机路径一次。所以它将在 JS 中执行 Math.random() 部分并将该数字发送到本机 App。实际的repeat 部分是使用计算出的数字执行的。

    【讨论】:

    • OriginalImageLeft = image.left; OriginalImageTop = image.top; if (Math.random() > 0.5){ value = -1; } 其他 { 值 = 1; } function newPosition(){ var viewAnimate = Ti.UI.createAnimation({ duration: 2000, left:OriginalImageLeft + (Math.random() * 20 * value), top:OriginalImageTop + (Math.random() * 20 * value ), }); Image.animate(viewAnimate); viewAnimate.addEventListener('complete', function(){ newPosition(); }); } 新的位置(); code 但它只做一次动画?
    • 在这里工作得很好migaweb.de/ti_shake.mp4
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-18
    • 2016-05-04
    • 1970-01-01
    • 1970-01-01
    • 2019-11-30
    相关资源
    最近更新 更多