Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 AS3中间类和泛效应_Actionscript 3_Flash_Actionscript_Tween - Fatal编程技术网

Actionscript 3 AS3中间类和泛效应

Actionscript 3 AS3中间类和泛效应,actionscript-3,flash,actionscript,tween,Actionscript 3,Flash,Actionscript,Tween,我正在尝试制作一个平移效果,我不确定这是否是flash as3中的平移,在这里,图像比遮罩大,只是水平显示。这是一个非常简单的效果,但我在使用tweens时遇到了麻烦 首先,我试着用tween类。但它最终与tween的速度(设置tween帧或秒数的参数)搞得一团糟。begin参数很简单,它是对象的x值,不管它在哪里。end参数也很简单,是0还是图像的结尾,取决于您是在左侧还是右侧按钮上。当您在这些按钮上时,tween开始,当您离开按钮或tween结束时,tween以stopTween结束。我所面

我正在尝试制作一个平移效果,我不确定这是否是flash as3中的平移,在这里,图像比遮罩大,只是水平显示。这是一个非常简单的效果,但我在使用tweens时遇到了麻烦

首先,我试着用tween类。但它最终与tween的速度(设置tween帧或秒数的参数)搞得一团糟。begin参数很简单,它是对象的x值,不管它在哪里。end参数也很简单,是0还是图像的结尾,取决于您是在左侧还是右侧按钮上。当您在这些按钮上时,tween开始,当您离开按钮或tween结束时,tween以stopTween结束。我所面临的问题是持续时间参数:我希望所有的二者速度相同,不管从哪里开始。显然,如果我把一个静态值,如果我在图像的中间,速度降低到一半。 所以我想弄清楚如何创建一个算法来实现这一点。我首先尝试了计算图像的哪个百分比是当前的x值:

如果我是50%,在50帧中制作二人组

如果我是90%,在10帧内制作二人组

如果我是20%,在80帧中制作二人组

但我认为应该有办法让它更容易。也许我弄错了,我需要的不是tween班。。。我只是想做一个位移效果,总是以相同的速度,尽管在达到速度之前,进出的速度会更大

关于这个有什么想法或有用的链接吗?我看了很多教程,但有不同的行为,主要与鼠标位置有关

提前谢谢

您想要:

duration = (end - begin) / pixels_per_ms

为什么不使用tween类的ease属性呢?看看


在TweenMax页面上有一个有用的示例小部件,您可以进行实验。

实现此效果的更好方法是测量速度/超过/距离。此公式将更简单,代码也更少。这样做您就不需要任何tween库

 var MaskCenter=100;
 var speed=1/10;
 var distance=boxdummy.mouseX-MaskCenter;


if(mouseX<250){
box.x-=(distance*speed);
}
if (mouseX>250)
{
 box.x -= speed + accel;
}
差不多吧

如果你不能工作,让我知道我会为你编一份fla文件