我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

本页主题: FLASH5的鼠标跟随全接触 显示签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

qingfeng



性别: 帅哥 状态: 该用户目前不在线
头衔: qingfeng瓜货
等级: 资政组
发贴: 803
威望: 10
浮云: 372
在线等级:
注册时间: 2006-10-09
最后登陆: 2009-05-08

5come5帮你背单词 [ street /'stri:t/ n. 街道,马路 ]


FLASH5的鼠标跟随全接触

FLASH5的鼠标跟随全接触(之一),
爱[屏蔽]油敬献

先给大家把第一个鼠标跟随做出来吧,因为有了超级闪客的关注,所以想做成鼠标跟踪全接触,呵呵,,其实全接触谈何容易,但如果能把几个比较典型的做出来也就不错了,但是朋友们又不敢得罪,还有我的女朋友这几天不知道怎么回事,老是给我找事,有点忙,谅解一下,其实鼠标跟踪的内核应该是如下吧,
Setproperty(“/mc”, _x, (getproperty(“/mc”,_x)+((_xmouse –(getproperty(“/mc”,_x))/15);
Setproperty(“/mc”, _y, (getproperty(“/mc”,_y)+((_ymouse –(getproperty(“/mc”,_y))/15);
有些朋友喜欢把它们分开写,便于理解,
X1=_xmouse
Y1=_ymouse
X2=getproperty(“/mc”,_x)
Y2=getpropetty(“/mc”,_y)
X3=x1-x2
Y3=y1-y2
X4=x3/15
Y4=y3/15
Setproperty(“/mc”,_x, x2+x4)
Setporperty(“/mc”,_y, y2+y4)
其实如何书写都是一样的,也就是获得鼠标的坐标,获组件的坐标,鼠标坐标减去组件的坐标再除以15,,更新鼠标的坐标的方法就是组件的坐标加上鼠标坐标的15%,当然也可以是别的数字,这里的15是表示移动的速度,
在FLASH5中有一个很方便的方法就是STARTDRAG函数,我们想做跟随,,只要在第一帧加上下列句子就行了,
_root.mc.startdrag(1)
就轻松实现了跟随效果。是不是很简单,,,有兴趣的网友可以去试试,下来我们开始讲解例一,


实例一:

实例一自然也躲不过上述的内核,,但是在其中我们加了一些变化,比方说应用了duplicatemouiechip自制组件函数,还有就是让它实现转动效果的引导层,
我们开始做一个新组件,就是画一个园啦,这个组件是个静止的,,然后把它加入到MC当中去,然后在MC当中做一个引导线的动画,效果是让这个组件做一次园形的引导线运动,
但是要注意将引导线的中心做到MC的正中间,

我们给做好了运动的MC取名为MM如何,当然如果有朋友不会取分身名称的话可以参考论坛上的其它帖子,
插入一个新MC组件将前三帧都做成关键帧,
在第一帖上写上,
a=20;  //这是MC总的被复制的数量,,,当然也可以是别的数字,依个人喜好,
b=20;  //这表示是转一周的密度
c=10;  //记得我们上面写的15了吗,,当然这个也是速度
d=1;
while ((number(d)<=number(a)){
duplicatemoviechip(“_root.mm”,“mm”add d,d)
setproperty(“_root.mm”add d,_rotation, (360-(360/b)*d)
setproperty(“_root.mm”add d,_alpha,100-(100/a)*d)
d=number(d)+1
}
setproperty(“_root.mm”,_visible,false)


其实这几句也好理解,朋友们开始可能是在360-(360/B)*d上面有点费解,再看其实只是让每个转动都有不同的角度而已,而_alpha就不用我说了吧,,是让每个组件的透明度逐渐下降,,呵呵,其实这是一个公式啦,如果你想让复制的组件第一个是ALPHA的值是100,逐渐减少,到最后一个是0的话,就用这个公式好了,
这样的话就完成了复制工作了,
然后我们开始做跟随,
在第二帧上写下如下的AS
d=1;
while (Number(d)<=Number(a)) {
      ax = getproperty("_root.star" add d,_x);
      ay = getproperty("_root.star" add d,_y);
      bx = getproperty("_root.star" add (d-1),_x);
      by = getproperty("_root.star" add (d-1),_y);
      setProperty ("_root.star" add d, _x, ax+(bx-ax)/c);
      setProperty ("_root.star" add d , _y, ay+(by-ay)/c);
      d=Number(d)+1;
}


其实这才是跟随的内核,,当然它也是和我们最初讲的内核有相似之处,不同的是它跟随的是上一个被复制的MC,呵呵,一加对照你很容易看的出的,
第三帧上写上GOTOANDPLAY 2就行了,
一切正常的话,
把两个组件都插入到场景上就OK了吗?
还要再做个空MC,将分身名称起为MM0,
然后我们场景的第一帧上写着STARTDRAG(”_root.mm0”,true)
我们把相应的MC拖到场景中,一共是三个啊,,应该就万事大吉了,
不过结合一点经验,,对AS不是很熟的话应该使用普通模式,因为有时候专家模式有一点点的差错的话,非常难调试,
另外这程序方面有些东西是根据个人的喜好可以更改的,比方我就喜欢比较快的节奏啊,所以我把速度放在了二,而不是文中的15,呵呵,因为复制的东东太多了,所以快一点好看,
顶端 Posted: 2007-11-22 23:24 | [楼 主]
我来我网·5come5 Forum » 创意&美化&设计

Total 0.009240(s) query 6, Time now is:12-22 16:48, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号