佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1911|回复: 15

[原创] 三种滑鼠的效果

[复制链接]
发表于 23-11-2008 10:58 PM | 显示全部楼层
教程(1)- 跟随滑鼠:

1。首先先开一个新档。什么size都可以。把fps改成30,这样跑的会比较顺。
这里注明以下用的是ActionScript 2.0,选择建立新档的时候注意(尤其是Flash CS3)。

2。Insert>New Symbol>MovieClip。先画一个圆圈。都会画吧?然后再把它convert成MovieClip。
在第10个Frame Insert " KeyFrame ",这里把圆圈缩小,透明度Alpha=0。
记得每一个圆圈都要对齐中心。有看到Stage上面的小小十字架吗?你可以开启Align的toolbar,选To Stage然后让他对齐中心。(如果没有队齐的话,他与滑鼠坐标会出问题)
再来建立Motion Tween在中间。
然后,把下面的code放在第10个Frame(就是圆圈不见的Frame)
removeMovieClip(this)
stop();

基本上这个就是很简单的圆圈变小消失的动画就完成了。
不要告诉我这里也有问题=.='l|

***我习惯用MovieClip来做动画,所以绝对不会用到Graphic,因为MovieClip好处就在它可以用Filter~所以不要奇怪为什么我会用MovieClip而不是Graphic来做Motion。

3。退回Scene 1。先把做好的MovieClip给一个名字。
在Propertise里面,在左下角上面有<instance name>的字样。给他一个名字叫"asd"。
这是我随便做的时候方便的名字=.='l|,要换自己换咯~不过之后Paste的code也要注意,要把有asd的全部改成你要的名字。
最后把这个"asd"拉到Flash 灰色的区域隐藏着。

4。再来把下面的code paste在第一个Frame上面。
var Listener1:Object = new Object();
n = 1;
Listener1.onMouseMove = function() {
        duplicateMovieClip(asd, "asd"+n, n);
        _root["asd"+n]._x = _xmouse
        _root["asd"+n]._y = _ymouse
        n++;
};
Mouse.addListener(Listener1)


5。你已经完成咯~按下Ctrl+Enter看看~

[ 本帖最后由 VernGalaxy 于 23-11-2008 11:05 PM 编辑 ]
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 23-11-2008 10:57 PM | 显示全部楼层 |阅读模式
这个是我在电脑课没事做的时候不小心弄出来的。
这个效果很简单也很美~
大家都看得出是会以滑鼠的移动来判断的。
http://forums.fymcs.com/attachment.php?aid=552

基本上这个Flash的原理是:
制造找一个“圆圈变小便透明“的动画,让这个动画在滑鼠移动的瞬间复制自己,动画重叠就变成了你看到的效果~

[ 本帖最后由 VernGalaxy 于 23-11-2008 11:23 PM 编辑 ]
回复

使用道具 举报

 楼主| 发表于 23-11-2008 11:18 PM | 显示全部楼层
教程二:以滑鼠为中心,绕着滑鼠转圆圈

前面三个步骤是一样的,第4个则是将这个code Paste进去:
var angle = 0;
Listener1.onMouseMove = function ()
{
    angle = angle + 2
    duplicateMovieClip(asd, "asd" + n, n);
    _root["asd" + n]._x = _xmouse + Math.sin(angle) * 30;
    _root["asd" + n]._y = _ymouse + Math.cos(angle) * 30;
    ++n;
};
]

红色部分是圆圈的公式~Locus来得。。。虽然有点不同,不过大家都看得出把~

[ 本帖最后由 VernGalaxy 于 23-11-2008 11:22 PM 编辑 ]
回复

使用道具 举报

 楼主| 发表于 23-11-2008 11:21 PM | 显示全部楼层
教程三:绕着Flash的中心转

前面3个步骤还是一样,第4个则是下面的code:
var angle=0
Listener1.onMouseMove = function ()
{
    angle = angle + 2
    duplicateMovieClip(asd, "asd" + n, n);
    _root["asd" + n]._x = Stage.width / 2 + Math.sin(angle) * 30;
    _root["asd" + n]._y = Stage.height / 2 + Math.cos(angle) * 30;
    ++n;
};
回复

使用道具 举报

 楼主| 发表于 23-11-2008 11:29 PM | 显示全部楼层
Code解释:(基于教程1,因为都是类似,只有第4个步骤小小不同)
var Listener1:Object = new Object();
n = 1;
Listener1.onMouseMove = function() {
        duplicateMovieClip(asd, "asd"+n, n);
        _root["asd"+n]._x = _xmouse
        _root["asd"+n]._y = _ymouse
        n++;
};
Mouse.addListener(Listener1)

到目前为止这些code都很浅白,我这里只要大概告诉actionScript的grammar你就会明白了。

var Listener1:Object = new Object();

我先建立一个Object,名叫Listener1。Object的用途很广,这里我不多做解释,其中一个就是用来detect Mouse的动作。

n = 1;

这个小朋友都会懂。我建立一个变数,值为1。

Listener1.onMouseMove = function() {
duplicateMovieClip(asd, "asd"+n, n);
_root["asd"+n]._x = _xmouse
_root["asd"+n]._y = _ymouse
n++;
};


这里分3段来解释。
红色部分:我指定Listener1,命令它当滑鼠移动就做下面的动作。

橙色部分:每当滑鼠移动,我就"复制" (duplicate)在Stage上面的一个MovieClip,那个MovieClip的名字是"asd",然后再给这个新的MovieClip新的名字,叫做“asd"+n,然后给它一个层次为n。
****这里有一点点点点点复杂给初学者。基本上duplicateMovieClip的function结构是这样:
     duplicateMovieClip(你要复制的movieClip名字,"复制品的新名字“,层次)
前面两个大家都知道是什么意思吧?唯有层次比较复杂。层次的意思就好像Photoshop的Layer。每制作一个新的东西就要给它一个层次号码(Number),才不会重叠。如果有两个一模一样层次的movieClip,就会有error,flash会照跑,可是东西显示不出来。
所以,我才会一开始给一个 n=1 的变量,这样可以避免名字重叠,也可以避免层次重叠。

蓝色部分:我指定刚刚复制出来的movieClip的x,y坐标等于滑鼠的坐标。
这样每次复制就会以mouse的坐标为准。最后你看到的就是很多个movieClip“圆圈“连成的一条线。
而 n++ 的意思就是每做完上面的东西,n加上1。这用意是为了避免名字重叠,也可以避免层次重叠。因为他会一直增加,所以每一个复制品的名字和层次都不一样~

removeMovieClip(this)
stop();

这个是paste在movieClip里面的Code。基本上我要他做的就是,当他走到第10个frame的时候,就把自己删除。
这个用意是为了避免复制太多movieClip,最后Flash Player会很lag。而且,每次复制后的movieClip,一下子就不见了,透明度=0的movieClip我们也没有用到,就让他删除咯~

基本上就是这样。只要大家都懂每行code到底是什么意思就可以了~good luck then~
回复

使用道具 举报

发表于 24-11-2008 09:10 PM | 显示全部楼层
好久好久没看到flash教学了
很棒!
加油……
回复

使用道具 举报

Follow Us
 楼主| 发表于 24-11-2008 09:25 PM | 显示全部楼层
原帖由 JohnChronox 于 24-11-2008 09:10 PM 发表
好久好久没看到flash教学了
很棒!
加油……

谢谢你~
因为我自己也有自学Flash~还蛮好玩的~
还买了一本AS2.0/3.0的Bible字典来看。。。刚刚才来到这里的~多多指教~
回复

使用道具 举报

发表于 25-11-2008 12:33 AM | 显示全部楼层
我也打算买actionscript3.0 bible
朋友买了120++
你买多少钱呀?
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 25-11-2008 12:40 AM | 显示全部楼层
原帖由 JohnChronox 于 25-11-2008 12:33 AM 发表
我也打算买actionscript3.0 bible
朋友买了120++
你买多少钱呀?

原来你也知道这本书~~
其实我也忘记了诶。。。我把标签拆了,哈哈。。。
依稀记得也是差不多那个价钱。我在MPH买的~网上好像也有它的电子书(非法= =)。。。
回复

使用道具 举报

发表于 25-11-2008 02:42 PM | 显示全部楼层
感谢楼主的分享哦。。继续加油。。
回复

使用道具 举报

发表于 26-11-2008 12:03 PM | 显示全部楼层
目前太多电子书要读了
下载了一本AS3.0的,内涵video tutorial
看完了再去找bible
回复

使用道具 举报

 楼主| 发表于 26-11-2008 05:15 PM | 显示全部楼层
原帖由 JohnChronox 于 26-11-2008 12:03 PM 发表
目前太多电子书要读了
下载了一本AS3.0的,内涵video tutorial
看完了再去找bible

娃娃~
不错诶~真羡慕你有哪个时间。。。
Btw,你有研究过类似连线的Flash AS吗?我一直都在找,可是好像都没有头绪。。。想做那种可以玩LAN的Flash
回复

使用道具 举报

发表于 27-11-2008 11:45 AM | 显示全部楼层
我比较注重在flash web development
都是做网站的。
动画才做过一个,很差那一种……
游戏想都没想过……

到这儿看看吧
http://cforum1.cari.com.my/viewt ... page%3D3&page=1

[ 本帖最后由 JohnChronox 于 27-11-2008 11:58 AM 编辑 ]
回复

使用道具 举报

发表于 27-11-2008 01:32 PM | 显示全部楼层
歡迎多寫些教程哦


原帖由 VernGalaxy 于 26-11-2008 05:15 PM 发表

娃娃~
不错诶~真羡慕你有哪个时间。。。
Btw,你有研究过类似连线的Flash AS吗?我一直都在找,可是好像都没有头绪。。。想做那种可以玩LAN的Flash


這方面你可以去熟悉一下 XML Socket 的用法
回复

使用道具 举报

 楼主| 发表于 27-11-2008 04:56 PM | 显示全部楼层
原帖由 JohnChronox 于 27-11-2008 11:45 AM 发表
我比较注重在flash web development
都是做网站的。
动画才做过一个,很差那一种……
游戏想都没想过……

到这儿看看吧
http://cforum1.cari.com.my/viewthread.php?tid=1113160&extra=page%3D3&page=1

哦~我也是很少做动画,感觉上我没什么创意可言。。。游戏是因为可以接触到很多AS的用法,才会有兴趣做的~

原帖由 super-tomato 于 27-11-2008 01:32 PM 发表
歡迎多寫些教程哦

這方面你可以去熟悉一下 XML Socket 的用法

谢谢你的建议~看过一些XML的code,感觉上他的排版很乱,有点眼花@@
是需要Flex吗?我对XML一窍不通诶。。。

[ 本帖最后由 VernGalaxy 于 27-11-2008 04:59 PM 编辑 ]
回复

使用道具 举报

发表于 27-11-2008 07:39 PM | 显示全部楼层
Flash 本身就可以了, 但你必須要有台 Server 做接收和傳送 Flash 的資料

XMLSocket 主要是 Client Side 的傳送和接收部分, 步驟主要是
1. 定義 XMLSocket
2. 連接 Server Side 的 IP 和 Port 做 Handshake 動作
3. 使用 send 傳送 xml 資料到 Server side
4. Server side 接收到並同時傳送給所有連接上的 Client Side
5. 使用 onXML 接收 Server Side 傳送過來的資料, 並依照自己的方式呈現

xml 資料的結構就自己定義
回复

使用道具 举报


ADVERTISEMENT

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 21-12-2025 04:22 PM , Processed in 0.098005 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表