发新话题
打印

[求救] 模仿一个按钮效果没能成功

模仿一个按钮效果没能成功

http://dodi.cn/article.php?aid=163

在源文件中有问题所在地方

附件

问题.fla (48 KB)

2008-6-22 04:24, 下载次数: 28

TOP

复制内容到剪贴板
代码:
var btn_array:Array = [a, b, c, d];
for (var p in btn_array) {
btn_array[p].onRollOver = function() {
  line_func(this._x);
};
btn_array[p].onRollOut = function() {
  line_func(187);
};
}
function line_func(_p:Number) {
line_mc.onEnterFrame = function() {
  this._width += (_p-this._x-this._width)*.2;
  Math.abs(_p-this._x-this._width)<.5 && delete this.onEnterFrame;
};
}
这个效果用补间不太好做,用AS容易得多。

附件

问题[1].fla (28 KB)

2008-6-22 07:44, 下载次数: 27

问题[1].swf (540 Bytes)

2008-6-22 07:44, 下载次数: 40

TOP

function line_func(_p:Number) {
        line_mc.onEnterFrame = function() {
                this._width += (_p-this._x-this._width)*.2;
                Math.abs(_p-this._x-this._width)<.5 && delete this.onEnterFrame;
        };
}


这段是什么意思啊

TOP

回复 3# 的帖子

this._width += (_p-this._x-this._width)*.2;是缓冲公式
Math.abs(_p-this._x-this._width)<.5 && delete this.onEnterFrame;是
if(Math.abs(_p-this._x-this._width)<.5 ){
delete this.onEnterFrame
}的简写

TOP

回复 3# 的帖子

this._width += (_p-this._x-this._width)*.2;是缓冲公式
Math.abs(_p-this._x-this._width)<.5 && delete this.onEnterFrame;是
if(Math.abs(_p-this._x-this._width)<.5 ){
delete this.onEnterFrame
}的简写

TOP

最怕数学公式 该回去翻翻书了。。

TOP

。2的意思是不是0。2?

TOP

yes

TOP

说老实话 这个代码真不知道是怎么计算出来的

TOP

this._width += (_p-this._x-this._width)*.2


看是看懂了 但是真要我来做 就肯定不知道这么写

是公式 还是真靠自己头脑算出来的?

TOP

呵呵,不错。回帖是美德。

TOP

我回帖我看贴

TOP

回复 10# 的帖子

是惯例,要做缓冲,首先就应当想到这个公式
当然你也可以用FLASH程序员给你做好的tween类啊,只要你提供参数就可以了

TOP

发新话题