主题:  做个图像变形,可是有问题


职务:普通成员
等级:2
金币:15.0
发贴:329
注册:2001/6/3 8:55:46
#12002/7/3 22:01:53
是个800*600的,可是中间老是有一部分重复在一起,合的不好,代码如下,
setProperty("/a", _x, /mouse:_x/2);
setProperty("/a", _xscale, /mouse:_x/4);
//很奇怪,这里除以2,得到的结果不对,必须除以4才行,不知道怎么回事
setProperty("/a", _y, /mouse:_y/2);
setProperty("/a", _yscale, /mouse:_y/2);
setProperty("/b", _x, 800-(800-(/mouse:_x))/2);
setProperty("/b", _xscale, (800-(/mouse:_x))/4);
setProperty("/b", _y, /mouse:_y/2);
setProperty("/b", _yscale, /mouse:_y/2);
// 下面的两张图
setProperty("/c", _x, /mouse:_x/2);
setProperty("/c", _xscale, /mouse:_x/4);
setProperty("/c", _y, (600-/mouse:_y)/2+/mouse:_y);
setProperty("/c", _yscale, (600-/mouse:_y)/2);
setProperty("/d", _x, 800-(800-(/mouse:_x))/2);
setProperty("/d", _xscale, (800-(/mouse:_x))/4);
setProperty("/d", _y, (600-/mouse:_y)/2+/mouse:_y);
setProperty("/d", _yscale, (600-/mouse:_y)/2);



奔腾的心

职务:普通成员
等级:7
金币:10.0
发贴:6114
注册:2001/11/4 15:11:47
#22002/7/3 23:18:04
swf 贴出来,看看好了




职务:普通成员
等级:2
金币:15.0
发贴:329
注册:2001/6/3 8:55:46
#32002/7/4 9:10:36



5D限制级

职务:普通成员
等级:6
金币:10.0
发贴:4970
注册:2001/8/16 14:52:34
#42002/7/4 9:37:58
The reference to a non-html file from other host is forbidden.

你的空间不支持SWF DOWN

我打开来什么也看不见 你文件传的有效吗?



5D荣誉斑竹

职务:普通成员
等级:2
金币:10.0
发贴:585
注册:2001/1/22 21:43:15
#52002/7/4 11:55:13
我想问一句,你从哪儿找来的这个程序?



apple6

职务:普通成员
等级:1
金币:0.0
发贴:55
注册:2002/6/27 16:14:49
#62002/7/4 14:08:41
没有没有,根本什么也看不见嘛!




职务:普通成员
等级:2
金币:15.0
发贴:329
注册:2001/6/3 8:55:46
#72002/7/4 15:25:16
不好意思,可是我早上明明可以看到呀,这个是我从帝国下的一个源程序,我在学习的过程中,做了一些修改.以前的是400*400的,现在做成了800*600.X轴的变形没有问题,Y轴就不行,中间有一些图像是重复的.不能完整构成一幅画.




职务:普通成员
等级:2
金币:15.0
发贴:329
注册:2001/6/3 8:55:46
#82002/7/5 9:02:31
问题已经解决了,并且我看了书之后,做了优化.这是个常见的图像随鼠标的移动变形的
特效,一幅画分成左上,右上,左下,右下四部分,做成四个电影夹子,起实体名为a,b,
c,d,还有一个电影夹子实体名为mouse,设置为可以用鼠标移动,以取得它的_x,_y值.都放在场景中,然后设置了四个夹子的属性如下边所示,据说是MX的新语法.
以前我用下载的那个实例的程序直接试,但出了问题,因为那个是400*400的
我想了一段时间,看了看书,解决了.

with(_root.a){
    _x=_root.mouse._x/2;
    _y=_root.mouse._y/2;
    _xscale=_root.mouse._x/4;
    _yscale=_root.mouse._y/3;
    }
    with(_root.b){
    _x=(_root.mouse._x)+(800-(_root.mouse._x))/2;
    _y=_root.mouse._y/2;
    _xscale=(800-(_root.mouse._x))/4;
    _yscale=_root.mouse._y/3;
    }
    with(_root.c){
    _x=_root.mouse._x/2;
    _y=_root.mouse._y+(600-(_root.mouse._y))/2;
    _xscale=_root.mouse._x/4;
    _yscale=(600-_root.mouse._y)/3;
    }
    with(_root.d){
    _x=(_root.mouse._x)+(800-(_root.mouse._x))/2;
    _y=_root.mouse._y+(600-(_root.mouse._y))/2;
    _xscale=(800-(_root.mouse._x))/4;
    _yscale=(600-_root.mouse._y)/3;
    }
我现在明白为什么要把这个电影夹子的X轴数除以4,Y轴数除以3了,因为它是800*600
当鼠标拖的那个电影夹子的坐标在正中间时,以实体a为例,
with(_root.a){
    _x=_root.mouse._x/2;
_y=_root.mouse._y/2;
//这个数不用改
    _xscale=_root.mouse._x/4;
//_root.mouse._x为400,让它除以4,正好是不缩放,如果除以2,图就大了一倍,就会出问题
    _yscale=_root.mouse._y/3;}
同理,这个应除以3,我先前说的有图像重合,就是因为我除以2造成的.
其它三个也做了相应的调整.谢谢大家的关心.
源程序,
我把它上传在http://nbartfree.myetang.com/qls/scls.zip中,可是现在下不了了,刚才还可以下呀,不知道怎么回事,别用直接点的方法,用复制粘贴的方法试试吧.


编辑历史:[这消息被糕编辑过(编辑时间2002-07-05 09:06:10)]