{$cluname}

合肥科杰电脑服务中心 » 软件学习 » FLASH常用动作---不断更新中...


‹‹上一主题 | 下一主题›› 查看 1851
发表一个新帖子 发表回复

标题 FLASH常用动作---不断更新中... 在百度搜索本主题 [ 搜 ] [ 打印 ] [ 推荐 ] [收藏帖子] [ 收藏到新浪VIVI] [ 订阅 ]

科杰服务 (管理员)
楼主   [点击复制本网址] [ 字体: ] [ 编辑 ] [ 报告 ] [评分]
社区主管
Rank:18
Rank:18
Rank:18

UID 2
帖子 770
精华 2 
积分 1605 点
金币 3195 枚
魅力 323 度
注册 2006年5月18日
FLASH常用动作---不断更新中...
Flash倒计时代码
在场景(或元件中)放一个文本框,实例名称为daojishi,变量名为day,建一个层,放入下面的代码
EndTime = new Date(2008,7,8,20,0,0)
// 定义倒计时结束时间,此处为2008北京奥运开幕日
// 注意,月份参数用0-11表示1-12月
NowTime = new Date();
// 定义当前时间
zong = Math.floor((EndTime.getTime()-NowTime.getTime())/1000);
// 取得当前时间与结束时间相差的总秒数
if (zong>0) {
day = Math.floor(zong/(60*60*24));
// 取得剩余天数
zong = zong-day*60*60*24;
hour = Math.floor(zong/(60*60));
// 取得剩余小时数
zong = zong-hour*60*60;
min = Math.floor(zong/60);
// 取得剩余分钟数
zong = zong-min*60;
sec = zong;
// 取得剩余秒数
}

if (sec<10) {
sec="0"+sec;
}
if (hour<10) {
hour="0"+hour;
}
if (min<10) {
min="0"+min;
}
//以上为保证两位显示
DaoJiShi = String(day)+"天"+String(hour)+"时"+String(min)+"分"+String(sec)+"秒";


载入外部图片:
loadMovieNum(abc.jpg,1);
abc.jpg 必须和FLASH动画放在同一目录中哦


产生一个随机数:

random(x) (若x=5时,系统产生的随机数可能会是0,1,2,3,4中的其中一个)
应用例:产生一个随机数,用这个随机数改变元件a(实体名称b)的宽度(宽度控制在99以内):
b._xscale = random(100);


随机载入动画:
loadMovieNum("\"s\"+(random(3)+1)+\".swf"\",1);
random(3)+1表示随机产生3个数,即可能产生0,1,2,但是每个产生的数都加1,即可得到1,2,3中某个,然后在FLASH同一目录下放上三个动画,名称分别为s1.swf,s2.swf,s3.swf


调用外部动画并控制其大小:
loadMovie("a.swf", show);
setProperty("show", _xscale, 80);
setProperty("show", _yscale, 80);


鼠标跟随:
startDrag("实体名称", true);


防止外部动画被重复调用

on(release){
if(i!=1)
{
loadMovie("1号.swf",show);
i=1;i2=0;i3=0;i4=0;
}
}
有几个按钮就在绿色部分定义几个i,对应的按钮就命名为i(x)!


打开外部程序:
fscommand("exec", "abc.exe");
注意:将abc.exe保存在"fscommand"文件里,并且将"fscommand"文件夹和FLASH文件放在同一目录中




此用户离线!
共计在线时长3330分钟2007-1-24 12:11:11
[ 资料 ] [ 短信 ] [ 好友 ] [ 文集 ] [ 引用 ] [ 回复 ] 点击返回顶部

科杰服务 (管理员)
第2楼 [ 字体: ] [ 编辑 ] [ 报告 ] [评分]
社区主管
Rank:18
Rank:18
Rank:18

UID 2
帖子 770
精华 2 
积分 1605 点
金币 3195 枚
魅力 323 度
注册 2006年5月18日
回复:FLASH常用动作---不断更新中...
最简LOADING条制作方法


   Loading的制作已经是个比较老的话题了。但是最近仍然不断有人问这个问题,毕竟什么时候都有初学者嘛。换个角度看,这也说明我们的闪客队伍是在不断涨大,倒是个可喜的现象。也给了我动力,来写这篇文章,给入门者提供一个较为详细的教程。好,我们开始

    Loading一般可以用两帧来制作,放在动画的最前面。如果一个比较大的动画已经做好了,再插入帧太麻烦,也可以增加一个场景,专门放Loading,我们先来看看最基本的制作步骤。

    新建动画,

1. 新建MC(影片剪辑),名为 a ,画一个10x10的方框(不要边线);

2.新建MC,名为 load ,将 a 拖到第一桢并将其宽设为1,高不变,x/y位置都为0;

3.在 load 中选择第100桢,按F6新建关键桢,将 a 的宽设为100,创建补间动画,并在第100桢上加上 stop();

4.回到场景中,将 load 拖进来,在属性面板中将“实体名称”命为 tiao

5.在场景中加一“动态文本”,将其变量名设为 loaded

6.在图层1的第二桢上右击新建“关键桢”

7.新建图层2,在图层2的第一桢上写上:

loaded = Math.round(getBytesLoaded()/getBytesTotal()*100);
setProperty("_root.tiao", _xscale, loaded);
if (loaded>==100) {
gotoAndPlay(3);
}

在图层2的第二桢上写上:

gotoAndPlay(1);

loading部分就算完成了,现在就可以开始从第三桢上做动画,或是新建一场景做动画啦


--------------


第二种方法

新建一个MC,名称随意,制作成一段进度条动画(创意随便啦,不过一定要是100祯的动画)

将这个MC拖到场景中的第一祯中去,将其“实例名称”命为 loadbar ,打开动作面板并选中这个MC,将下面的代码复制进去:

onClipEvent (load) { //mc载入时,保持mc的停留位置。
stop();
}
onClipEvent (enterFrame) { //mc中循环执行以下语句
byteloaded = _root.getBytesLoaded(); //获取已下载字节数
bytetotal = _root.getBytesTotal(); //获取总字节数
loaded = int(byteloaded/bytetotal*100); //计算目前下载的百分比
_root.percent = loaded+"%"; //使主场景中的文本框显示下载比例
gotoAndStop(loaded); //根据下载比例跳转到进度条的相应帧号
if (byteloaded==bytetotal) { //如果完全下载完毕
_root.play(2); //开始播放第2帧
}
}

这时,再拖一个动态文本框到场景中的第一祯中,命名其“变量名”为 percent  设置一下字体等。

最后从第二祯开始制作动画,一个简单的实用的LOADING就OK啦!




此用户离线!
共计在线时长3330分钟2007-1-24 12:12:02
[ 资料 ] [ 短信 ] [ 好友 ] [ 文集 ] [ 引用 ] [ 回复 ] 点击返回顶部

科杰服务 (管理员)
第3楼 [ 字体: ] [ 编辑 ] [ 报告 ] [评分]
社区主管
Rank:18
Rank:18
Rank:18

UID 2
帖子 770
精华 2 
积分 1605 点
金币 3195 枚
魅力 323 度
注册 2006年5月18日
回复:FLASH常用动作---不断更新中...
实现实时显示系统时间的两种方法

第一种:新建一个空MC。两个动态文本框,大小要能完整显示日期和时间,并命名为t1、t2(也可以直接给文本框的变量名)。
然后在空MC中写上如下语句:
onClipEvent (load) {
//建立星期和月份数组
days = new Array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六");
months = new Array("1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月");
//建立新的时间
timedate = new Date();
}
onClipEvent (enterFrame) {
//获取时、分、秒
hours = timedate.getHours();
minutes = timedate.getMinutes();
seconds = timedate.getSeconds();
//获取日期(几号)、星期
todaydate = timedate.getDate();
day = timedate.getDay();
//把星期转换成数组中的中文显示
dayname = days[day];
//获取月份并转换成数组中的中文显示
month = timedate.getMonth();
monthname = months[month];
//获取年份
year = timedate.getFullYear();
//如果分和秒少于10则在前面加上一个0,使其显示两位数
if (length(minutes) == 1) {
minutes = "0"+minutes;
}
if (length(seconds) == 1) {
seconds = "0"+seconds;
}
//显示时间、日期
_root.t1.text = hours+":"+minutes+":"+seconds;
_root.t2.text = year+"年"+monthname+todaydate+"日"+" "+dayname;
//重新建立时间
timedate = new Date();

}

第二种:新建两个动态文本框,大小要能完整显示日期和时间,并命名为t1、t2(也可以直接给文本框的变量名)。
然后在第一帧写上如下语句:

//每隔1秒执行一次函数showtime
setInterval(showtime, 1000);
//定义函数showtime
function showtime() {
//建立星期和月份数组
days = new Array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六");
months = new Array("1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月");
//建立新的时间
timedate = new Date();
//获取时、分、秒
hours = timedate.getHours();
minutes = timedate.getMinutes();
seconds = timedate.getSeconds();
//获取日期(几号)、星期
todaydate = timedate.getDate();
day = timedate.getDay();
//把星期转换成数组中的中文显示
dayname = days[day];
//获取月份并转换成数组中的中文显示
month = timedate.getMonth();
monthname = months[month];
//获取年份
year = timedate.getFullYear();
//如果分和秒少于10则在前面加上一个0,使其显示两位数
if (length(minutes) == 1) {
minutes = "0"+minutes;
}
if (length(seconds) == 1) {
seconds = "0"+seconds;
}
//显示时间、日期
_root.t1.text = hours+":"+minutes+":"+seconds;
_root.t2.text = year+"年"+monthname+todaydate+"日"+" "+dayname;
}

两种方法语句大同小异,只是第一种用了一个空MC,语句最后重新获时间timedate = new Date()以实现实时显示;第二种用一个间隔执行函数setInterval来实现实时显示。在显示时间上,第二种有一秒钟的延迟。




此用户离线!
共计在线时长3330分钟2007-1-24 12:12:33
[ 资料 ] [ 短信 ] [ 好友 ] [ 文集 ] [ 引用 ] [ 回复 ] 点击返回顶部

科杰服务 (管理员)
第4楼 [ 字体: ] [ 编辑 ] [ 报告 ] [评分]
社区主管
Rank:18
Rank:18
Rank:18

UID 2
帖子 770
精华 2 
积分 1605 点
金币 3195 枚
魅力 323 度
注册 2006年5月18日
回复:FLASH常用动作---不断更新中...
根据时间对应显示文字或其他

就是根据时间,对应显示,上午好啊,下午好啊 中午好啊什么的...
先把代码贴一贴:
先在主场景建个动态文本 out 用来输出显示的文字
第一帧加上如下代码:

this.onEnterFrame = function() {
sundate = new Date();//新建时间
sunhour = sundate.getHours();//获得当前小时数
if (sunhour<12 && sunhour>=0) out = "早上好";//时间在11点与0点之间则显示早上好
if (sunhour<=13 && sunhour>=12) out = "中午好";//以此类推....
if (sunhour<=18 && sunhour>13) out = "下午好";
if (sunhour>18) out = "晚上好";

};

这样就OK了,偶还没测试,拿去先试试看吧!




此用户离线!
共计在线时长3330分钟2007-1-24 12:12:57
[ 资料 ] [ 短信 ] [ 好友 ] [ 文集 ] [ 引用 ] [ 回复 ] 点击返回顶部

科杰服务 (管理员)
第5楼 [ 字体: ] [ 编辑 ] [ 报告 ] [评分]
社区主管
Rank:18
Rank:18
Rank:18

UID 2
帖子 770
精华 2 
积分 1605 点
金币 3195 枚
魅力 323 度
注册 2006年5月18日
回复:FLASH常用动作---不断更新中...

关于如何读取外部TXT文件
      第一步:
建立一个MC(Movie Clip,即影片剪辑,快捷键Ctrl+F8)
在MC内,用Text工具(快捷键T)拉出一个满意的框,在属性栏中将其调到“动态文本框”。 然后在还是在属性栏,找到“变量”,填入满意的变量名,这里假设为main。然后在再在同一个MC内,建立一个新层,在第一个空白关键帧中写入as:

loadVariables("home.txt", _root.a);
//home.txt是你放在flash外部的text文件名,自己更改,_root.a里面的a是稍后放在场景的MC的实例名(当然也可以自己改成其他的)。
第二步:
返回主场景,将这个MC拖入,并且实例命名为a(或者参照前面自己改过的名字)
然后输出影片文件。
第三步:
在输出swf文件的同文件夹内,建立一个text文件,home.txt(或者参照前面自己改过的名字)。打开text文件,输入&main=,=后面输入你要想说的话。
第四步,打开swf文件查看是否有显示:)

上下翻动的方法
接前讲:
第一步:建立两个空MC,一个命名为down,一个命名为up(注意,这里不是实例命名,仅仅是为了好区分)
在这两个MC内加入总计三个空白关键帧,
第一帧都是

stop();
第三帧都是

gotoAndPlay(2);
down的第二帧

:_root.a.home.scroll = _root.a.home.scroll+1//a是在主场景中整个text MC的实例名,home是动态文本的变量名(参照三楼的命名,可以自行更改)
up的第二帧

:_root.a.home.scroll = _root.a.home.scroll-1//命名问题同上
第二步:
做一个简单的按钮,表示上,翻转过来可以表示下的就行。。。
第三步:
将up和down MC拖入前面讲的动态文本框所在的MC里面,分别实例命名为up和down,放在哪里随便,没有限制
第四步:
拖入做好的按钮,复制一个,翻转过来,表示上下,放在合适的位置(一般。。。就是在动态文本框的左边或者右边了。。。
然后给表示向上的按钮写入AS(记住,就是这个按钮上的,不是帧上的):

on (press) {
up.gotoAndPlay(2);
}
on (release) {
up.gotoAndStop(1);
}//
这样整体效果是,你按住按钮不放,就一直向上翻动(直到顶为止),而一送开就停止。。。当然,你也可以做成on(rollOver)就是鼠标放在按钮上面就开始向上翻,再将on(release)改成on(rollOut)就将整体效果变成鼠标移开就停止翻动。
最后给表示向下的按钮写入AS(记住,就是这个按钮上的,不是帧上的):

on(press){
down.gotoAndPlay(2);
}
on(release){
down.gotoAndStop(1);
}//同上




此用户离线!
共计在线时长3330分钟2007-1-24 12:13:20
[ 资料 ] [ 短信 ] [ 好友 ] [ 文集 ] [ 引用 ] [ 回复 ] 点击返回顶部

科杰服务 (管理员)
第6楼 [ 字体: ] [ 编辑 ] [ 报告 ] [评分]
社区主管
Rank:18
Rank:18
Rank:18

UID 2
帖子 770
精华 2 
积分 1605 点
金币 3195 枚
魅力 323 度
注册 2006年5月18日
回复:FLASH常用动作---不断更新中...

动态文本调用html

最近大家都在问一个问题就是有关动态文本的.如果是简单的txt文本就很简单了.
我要写的就是有关调用html的内容了.
大家都知道在使用动态文本的时候,要想改变调用的文本颜色和字体的大小.只能通过改变
动态文本框的属性来改变.这种方法在改动的时候整个调用进来的文本全部内容全部都随着变了
(这是废话).那么能不能只改变几个字体的颜色和大小呢?答案是肯定的.
现在就进入正题了.使用html语言编写就可以了.

1.首先打开你的FLASH MX,建立一个多行动态文本框,变量名称为test.

2.因为你这次导入的文本是采用html语言编写的所以还要选择这个复选框的,

3.FLASH里的东西基本制作完毕.还有最重要的就是要在针加一句代码就是


system.useCodepage = true;
loadVariablesNum("test.txt", 0);

上面的test.txt就是你要调用的txt文件名称


4.现在开始编写html语言.如果你对html还不太熟悉的话,(哈哈,我也不太灵)
  教一种方法就是用FLASH的兄弟DW来写.这样就方便多了.


新建一个txt格式的文本文档在里面写
test=<body>
<a href="http://www.flash8.net";><font color="#FF0000" size="2">闪吧</font></a> <br>
<a href="http://6to.126.com";><font color="#0000FF">火麒麟客栈</font></a>
</body>


5把文本和你的FLASH放在同一个文件夹下测试一下吧




此用户离线!
共计在线时长3330分钟2007-1-24 12:13:33
[ 资料 ] [ 短信 ] [ 好友 ] [ 文集 ] [ 引用 ] [ 回复 ] 点击返回顶部

科杰服务 (管理员)
第7楼 [ 字体: ] [ 编辑 ] [ 报告 ] [评分]
社区主管
Rank:18
Rank:18
Rank:18

UID 2
帖子 770
精华 2 
积分 1605 点
金币 3195 枚
魅力 323 度
注册 2006年5月18日
回复:FLASH常用动作---不断更新中...

从Flash中导出透明背景的GIF动画
  某日,网友紧急求助:在Flash里设置了一个小动画,转成了GIF格式但总带着白色背景,请问能否在Flash里把背景设为透明,使导出GIF图不带背景?其实利用Flash MX,在其“发布设置”中就有这个选项的。

  1. 点击“文件”菜单中的“发布设置”命令,在随后的“发布设置”对话框中的“格式”选项下,你会发现,软件默认只勾选了“Flash(.swf)”和“HTML(.htm)”这两个选项。要想导出GIF图像,事先得在此对话框中再选中“GIF图像(.gif)”这个选项后,点开随后出现的“GIF”选项卡。

  2. 在“GIF”这个选项卡下,在“回放”项中确认选中“动画”和“不断循环”这两项;在“选项”项中确认选中“优化颜色/抖动实底/交错/删除渐变色/平滑”这五种效果中的某一或几种;在“透明”项中点开右边的倒黑三角后确认选中“透明”项(这是你想做成透明背景的关键);点开“抖动”项右边的倒黑三角后选择一种抖动效果;点开“调色板类型”项右边的倒黑三角后选择一种调色板效果;点按“确定”。

  3. 点击“发布设置”对话框中的“发布”按钮,或者点击“文件”菜单中的“发布”命令后,再到你的“X:\Program Files\Macromedia\Flash MX”(这里“X”是指你的安装的Flash MX所在的分区)文件夹下,或者到你已经保存了编辑文件(.fla)所在的文件夹中,你会发现多出了三个扩展名不同但都是“未命名-1”为名的文件,其中“未命名-1.gif”就是透明背景的动态GIF图形成品!

  注:当然了,也可直接点“文件”菜单下的“导出影片”命令后,先点开“保存类型”右边的倒黑三角并选中“GIF动画”,再找好存放位置并命名文件名后点按“保存”按钮。但这种方式输出的最后成品,其背景是不透明的!




此用户离线!
共计在线时长3330分钟2007-1-24 12:14:00
[ 资料 ] [ 短信 ] [ 好友 ] [ 文集 ] [ 引用 ] [ 回复 ] 点击返回顶部

科杰服务 (管理员)
第8楼 [ 字体: ] [ 编辑 ] [ 报告 ] [评分]
社区主管
Rank:18
Rank:18
Rank:18

UID 2
帖子 770
精华 2 
积分 1605 点
金币 3195 枚
魅力 323 度
注册 2006年5月18日
回复:FLASH常用动作---不断更新中...
经常看到Flash的右键菜单中只显示了很少的几个菜单项,那么这个是怎么做到的呢!?其实实现这个效果并不难,只要用几句AS就能搞定了!

第一种写法:
var my_cm:ContextMenu = new ContextMenu();//新建一个菜单对象
my_cm.hideBuiltInItems();//新建一个菜单对象的内容隐藏
my_cm.builtInItems.print = true;//如果你想要某个或某几个出现,可以这样设置,这里设置的仅显示"打印"
this.menu = my_cm;//将菜单附加到对象

第二种写法:
var my_cm:ContextMenu = new ContextMenu();//新建一个菜单对象
my_cm.builtInItems.print = false;//要删除的菜单项设置为false
my_cm.builtInItems.quality=false;
my_cm.builtInItems.zoom=false;
my_cm.builtInItems.forward_back=false;
this.menu = my_cm;//将菜单附加到对象

下面是可控制的菜单项目:
zoom:缩放
quality:显示质量
play:播放
loop:循环
rewind:后退
forward_back:快进/返回
print:打印



此用户离线!
共计在线时长3330分钟2007-11-11 17:46:02
[ 资料 ] [ 短信 ] [ 好友 ] [ 文集 ] [ 引用 ] [ 回复 ] 点击返回顶部

« 首页1 »7/共1页



Powered by TEAM 2.0.4 Release - ACC © 2005 Team5 Studio All rights reserved