发新话题
打印

flash专栏

本主题由 夜飞鹰 于 2006-9-12 07:20 设置高亮

flash专栏

点击按钮,演示一分钟的动态效果
在第1祯里 拖入表盘、分针、秒针,把分针、秒针影片实例分别命名为分针、秒针,加入以下AS:
stop();
在按钮上输入AS:
on(release){
function zw(){i=i+1;
_root.秒针._rotation=i*6;
_root.分针._rotation=i*0.1;
if(i>=60){clearInterval(cc);
i=0;}
}
cc=setInterval(zw,1000);//每秒刷新一次
}

TOP

flash专栏

关于updateAfterEvent()用法 以下是一段as脚本 mc._visible = true; mc._visible = false; trace("hide"); for (var i = 0; i<1000000; i++) { } trace("show"); mc._visible = true; stop(); 如果我们运行一下这段脚本的话我们会发现mc并不会如脚本所指挥的那样能够闪一下(更确切的说是mc先隐藏,再过了大约2秒钟以后mc又显示出来)。大家可以试一下这段代码。(还有些比较微妙的事情,在这里一句话说不清) 为什么呢? 因为flashplayer只是在一个特定的时候才会render(渲染)一下整个屏幕。也就是说flashplayer每播放一帧才重新刷新一下整个屏幕。当然这有个例外就是对于用户输入剪辑事件处理器(mouseMove mouseDown mouseUp keyUp keyDown)通常发生在flash播放器里帧的render之间。要强迫屏幕对发生在用户输入剪辑事件处理器间的视觉的改变做出响应,可以在任何这类处理器内调用updateAfterEvent() 但是要注意 updateAfterEvent()不是一个随处都可以使用的武断的屏幕更新工具,只有在用户输入剪辑事件中有效,即在onClipEvent(){}中有效 例如 onClipEvent(mouseMove){ _x=_root._xmouse; _y=_root._ymouse; updateAfterEvent(); } 注意可以把你的frame ps(每秒播放多少帧)调低一些来验证效果(即有updateAfterEvent和没有有何区别)。 在回到最初的话题, 那么为什么flashplayer每播放一帧才render一下呢? 因为在swf文件格式里有一个至关重要的语句(更确切地说是tag)叫做showFrame(这个showFrame每播放一帧才出现一次),其意思是要求FlashPlayer 根据displaylist render一下屏幕,这个displaylist指明了该有哪些movieclip需要修改如何修改,需要添加或删除那些movieclip。 因此从本质上来说我们平时所做的as就是在修改这个display list,然后等待showFramea来执行这个displaylist,所以从这个角度上来看display list实际上是一个批处理文件。

TOP

flash专栏

setInterval全面的介绍
setInterval动作的作用是在播放动画的时,每隔一定时间就调用函数,方法或对象。可以使用本动作更新来自数据库的变量或更新时间显示。setInterval动作的语法格式如下:
setInterval(function,interval[,arg1,arg2,......argn])
setInterval(object,methodName,interval[,arg1,arg2,.....argn])
第一种格式是标准动作面板中setInterval函数的默认语法,第二种格式是在专家模式动作中使用的方法。
其中的参数function是一个函数名或者一个对匿名函数的引用。object参数指定从Object对象派生的对象。methodName制定object参数中要调用的方法。interval制定对function或methodName调用两次之间的时间,单位是毫秒。后面的arg1等是可选的参数,用于制定传递给function或是methodName的参数。
setInterval它设置的时间间隔小于动画帧速(如每秒10帧,相当于100毫秒),则按照尽可能接近interval的时间间隔调用函数。而且必须使用updateAfterEvent动作来确保以足够的频率刷新屏幕。如果interval大于动画帧速,则只用在每次播放头进入某一帧是才调用,以减小每次刷新屏幕的影响。
下面的例子每隔1秒调用一次匿名函数。
setInterval(function(){trace("每隔1秒钟我就会显示一次")},1000);//这里的function(){}是没有函数名的函数。成为匿名函数,后面的1000是时间间隔,单位是毫秒。
下面的例子为我们展示如何带参数运行。
function show1(){
trace("每隔1秒我就会显示一次");
}
function show2(str){
trace(str);
}
setInterval(show1,1000);
setInterval(show2,2000,"每隔2秒我就会显示一次");
上面已经将函数的setInterval方法介绍了。
下面我们将介绍对象的setInterval方法。
首先,写一个setInterval在动作中调用对象的方法的例子,该例子不需要传递参数。
myobj=new Object();//创建一个新的对象
myobj.interval=function){
trace("每隔1秒我就会显示一次");
}//创建对象的方法。
setInterval(myobj,"interval",1000);//设定时间间隔调用对象的方法。
接下来介绍如何传递参数。其实道理和函数的传递参数是一样的。
myobj=new Object();
myobj.interval-function(str){
trace(str);
}
setInterval(myobj,"interval",2000," 每隔2秒我就会显示一次");
注意。要调用为对象定义的方法时,必须在专家模式中使用第二种语法格式。
这样子的话呢,我们来作一个动态显示时间的画面。可以用下面的代码实现。
setInterval(show,1000);
function show(){
time=new Date();
hour=time.getHours();
minu=time.getMinutes();
sec=time.get.Seconds();
datetime=hour+":"+minu+":"+sec;
}//这里的datetime是一个动态文本框的变量名字。
这样子呢,setInterval这个方法大家应该学的很好了。现在呢,我们学习clearInterval.
clearInterval动作的作用是清楚对setInterval函数的调用,它的语法格式如下clearInterval(intervalid);intervalid是调用setInterval函数后返回的对象。
下面举一个简单的例子。
function show(){
trace("每隔一秒我就会显示一次");
}
var sh;
sh=setInterval(show,1000);
clearInterval(sh);
好的至此,学习结束。希望对大家有所帮助。

TOP

flash专栏

一种"另类AS"写法
我觉得是把一种响应附加给一个变量,起到传递的性质!!!!!!!!!
functionName = "onEnterFrame";//变量赋值
a[functionName] = function () {//a是mc名
this._rotation += 5;//使mc不停地加转5度.
};
把"ononEnterFrame";改成其他方式都行如
functionName = "onRollOver";//变量赋值
a[functionName] = function () {//a是mc名
this._rotation += 5;//在影片上使mc不停地加转5度.
};

TOP

flash专栏

http://www.flashempire.com/school/img4/04010716.swf
你可以下载FLASH文件分析软件,把这个文件打开看看它与教程中有无不同。

TOP

flash专栏

http://www.newhua.com/soft/31226.htm
一款用于浏览和解析Flash动画(.swf文件和.exe文件)的 工具。它能够将flash动画中的图片、矢量图、字体、文字、按钮、影片片段、帧等基本元素完全分解,还可以对flash影片动作(Action)进行解析,清楚的显示其动作的代码,让您对Flash动画的构造一目了然。你可以将分解出来的图片、矢量图、声音灵活应用于 硕思闪客之锤 中,让你也可以做出大师级的作品!此最新版功能更强大: ●、可导出 .png 格式图片 ●、可导出 .fla 文件
此汉化版是在2004.7.30官方发布之最新英文专业版基础上制作的。

TOP

flash专栏

≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡D$*Ma ∷∷∷∷∷ 硕思闪客精灵 MX2005 Build40730 中文版 ∷∷∷∷∷3re(F ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡<8ZWo} 【软件介绍】=p ①、名称:硕思闪客精灵lahV{R ②、版本:MX 2005 Build40730g+ ③、类型:共享软件K ④、原版文件:[不需要]=> ⑤、软件大小:1.33 MBY#3Ltx ⑥、适用系统:Windows 9x/ME/NT/2000/XP.0 ⑦、一款用于浏览和解析Flash动画(.swf文件和.exe文件)的~ 工具。它能够将flash动画中的图片、矢量图、字体、文字、按钮、影片/';OQ 片段、帧等基本元素完全分解,还可以对flash影片动作(Action)进行fN 解析,清楚的显示其动作的代码,让您对Flash动画的构造一目了然。你0 可以将分解出来的图片、矢量图、声音灵活应用于 硕思闪客之锤 中,让6L# 你也可以做出大师级的作品!m; 此最新版功能更强大: ●、可导出 .png 格式图片|pe ●、可导出 .fla 文件|zzZ0z 此汉化版是在2004.7.30官方发布之最新英文专业版基础上制作的。Q ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡npd 【关于汉化】`h0vd ①.此为汉化完全版,无需原版。p ②.软件已作破解,功能完整,无需注册。:&nQ. ③、*.swf 文件右键菜单的中文关联、卸载问题完美搞定!S*H ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡c 下载地址: http://www.jd165.com/down.asp?id=2504&no=1

TOP

flash专栏

FLASH新手入门建议
如果你下决心来学FLASH了,请看以下注意事项:
◆拥有自信◆
首先要告诉你的是:FLASH入门非常简单。
◆自身条件◆
不论你是为了网页或广告设计、还是为了给朋友制作贺卡或MTV,总之现在你有了一种表达的冲动,借助这股力量你可以轻松入门,如果没有兴趣而单单是为了赶时髦的话,学起来可就枯燥了。
◆外在条件◆
FLASH是一款由MACROMEDIA公司出品动画制作软件,请确认你的计算机上已经安装了FLASH的某一个版本(如FLASH MX或FLASH5.0),另外你还需要一本FLASH基础教材(书店里除了高考相关书籍,相信FLASH的教科书也算是最多的了,从中选择一本讲解方式适合你的就可以了)。
◆自学方法◆
相信大多数人都会选择自学的方式来进入FLASH领域,本人认为绝对没有必要花钱去接受什么培训(but用钱来买一本教材还是有必要的)。
[1]大量欣赏FLASH动画■■在学习FLASH之前,请确信你已经欣赏了大量的FLASH影片,对这样的表达形式已经完全接受,知道它们的外在特点:比如正式的影片下载时会出现loading画面,上面有下载速率以及下载百分比的提示;动画首尾都有“play”或“replay”按钮;反键点击画面会弹出一个快捷菜单......这些都是一些必备的感性认识,当你去学习的时候可以有针对性。
[2]熟悉FLASH软件的操作界面■■相信学习过word、powerpoint等基础软件的朋友应该清楚:学会对某种软件的操作无外乎去熟悉它的操作界面,请按照自己手中的教程来完成这一环节,多仿效书中的简单实例,做一些最基本的动画,比如:一个方块由左到右的运动。逐渐地你就理解FLASH中贞和时间线等一些重要概念了。在此期间,你制作出每一个简单的效果都是自己的一次胜利。
[3]ACTION借用■■借用?没搞错吧!对,新手不需要专门的去研究什么“ACTION大全”需要用到什么小代码,你就学一下,比如必要的有“loading代码”“play按钮代码”“replay按钮代码”“邮件或网址链接代码”。
[4]借助BBS的力量■■自学的时候会遇到许多不明白的问题,身边的朋友也都没有接触FLASH,怎么办?你可以到网上来寻找答案,各大FLASH站点都配备了一个功能强大的BBS(论坛),你可以在里面发贴询问,虽然不是即时交流,但你一样可以快速的获取答案,而且答案往往不只一种,大家都会以自己的思路来帮助你。(当你成为老鸟的时候也别忘了回报大家啊!回答他人的问题也是可以提高自己的)
如果你在[欣赏]---[看书]---[操作]---[论坛探讨]这几个环节反复实现的话,相信你马上就会成为FLASH软件的主人了。

TOP

flash专栏

隐藏的flash快捷键
1:改变矩形圆角的快捷键[上箭头,下键头]
  step1:选择矩形工具
  step2:将鼠标移动到舞台上
  step3:拖动鼠标,注意这时鼠标的左键不要松开
  step4:按住上箭头或下箭头,看看效果
2:给一个直线增加角
  step1:在舞台上绘制已个直线
  step2:将鼠标移动到线上,出现小弧度图标
  step3:按下鼠标左键并移动鼠标,发现改变了线的弧度
  step4:如果在按下鼠标左键之前,按下了Ctrl或Alt,你会发现再次移动鼠标时,会托拽出一个角来
3:动态改变静态文本字间距
用鼠标选中一个静态文本,然后按下Ctrl+Alt后,再按左键是减小字间距,按右键是增加字间距,按上或下是还原字间距

TOP

flash专栏

Flash 中响应键盘的一般方法 响应键盘的方法作为AS中的一个重要组成部分,在如今已经越来越广泛使用,尤其是在 FLASH游戏制作中,如果缺少了响应键盘的方法,那是不可能的,而响应键盘的方法也就是 主要的四种,分别是: 1、利用按钮进行检测 2、利用KEY对象 3、利用键盘侦听的方法 4、利用影片剪辑的keyUp和keyDown事件来实现响应键盘 只有熟练掌握了这些方法,然后加以变通的话,就会得到很多意想不到的效果, 下面我就结合理论和自己的想法简要的介绍一下。 第一种响应键盘的方法:利用按钮进行检测来实现响应键盘在按钮的on事件处理函数中不但可以对鼠标事件作出响应,而且可以对键盘事件作出响应。 如在按钮的动作面板中加入如下所示的代码,在敲击键盘上的X键时输出窗口中将提示: X is pressed 在按钮上加上: on(keyPress"x"){ trace("Xispressed"); } 但是要注意的是:检测键盘上的字母键时,字母都应为小写。如果要检测键盘中的特殊键, Flash中有一些专门的代码来表示它们,下面列出了一些常用的功能键的表示代码: 如要检测键盘上的键,可以使用下面的ActionScript: on(keyPress""){ trace("Leftispressed"); } 另外,你可以在一个按钮中加入若干个on函数,也可以在一个on函数中结合多种事件,这使 您可以为按钮定义自己熟悉常用的快捷键,如下所示: on (release, keyPress "") { _root.myMC.prevFrame(); } on (release, keyPress "") { _root.myMC.nextFrame(); } 上面的第一个语句实现单击按钮或按键盘上的左方向键,控制影片剪辑myMC回退1帧,而上面的第二个语句实现单击按钮或按键盘上的右方向键,控制影片剪辑myMC前进1帧。 最后给出实例原文件:01.rar 方法二 第二种响应键盘的方法:利用Key对象来实现响应键盘的操作 利用按钮检测按键动作很有效,但是并不利于检测持续按下的键,所以不适合于制作某些通过键盘控制的游戏。 这时,您就需要用到Key对象。Key对象包含在动作面板的“对象”/“影片”目录下面,它由Flash内置的一系列方法、常量和函数构成。使用Key对象可以检测某个键是否被按下,如要检测左方向键是否被按下,可以使用如下ActionScript: if(Key.isDown(Key.LEFT)){ trace("Theleftarrowisdown"); } 函数Key.isDown返回一个布尔值,当该数中的参数对应的键被按下时返回true,否则返回false。常量Key.LEFT代表键盘上的左方向键。当左方向键被按下时,该函数返回true。 Key对象中的常量代表了键盘上相应的键,下面列出了一些基本的常量: 一些功能键的表示: Key.BACKSPACE Key.ENTER Key.PGDN Key.CAPSLOCK Key.ESCAPE Key.RIGHT Key.CONTROL Key.HOME Key.SHIFT Key.DELETEKEY Key.INSERT Key.SPACE Key.DOWN Key.LEFT Key.TAB Key.END Key.PGUP Key.UP 以上是键盘上的功能键,那么如何表示键盘上的字母键呢? Key对象提供了一个函数Key.getCode来实现这一功能,如下所示: if(Key.isDown(Key.getCode("x"))){ trace("Xispressed"); } 上面脚本的意思就是,利用Key.getCode函数来告诉系统你是否按下了x键,如果按下了x键以后,函数Key.isDown则会返回true,在输出窗口就会输出X is pressed。 最后给出实例原文件:02.rar 方法三 第三种响应键盘的方法:利用键盘侦听的方法来实现响应键盘(个人习惯用这种方法) 假设在影片剪辑的onClipEvent(enterFrame)事件处理函数中检测按键动作,而影片剪辑所在的时间轴较长,或计算机运算速度较慢,就有可能出现这种情况:即当在键盘上按下某个键时还未来得及处理onClipEvent(enterFrame)函数,那么按键动作将被忽略,这样的话,很多你想要的效果就会无法实现了。 另外,还有一个需要解决的问题就是,在某些游戏(如射击)中,我们需要按一次键就执行一次动作(发射一发子弹),即使长时间按住某个键不放也只能算作一次按键,而Key对象并不能区别是长时间按住同一个键还是快速地多次按键。 所以如果要解决这个问题,就需要用到键盘侦听的方法。你可以使用 “侦听器(listener)”来侦听键盘上的按键动作。 要使用侦听器之前,首先需要创建它,你可以使用如下所示的命令来告诉计算机你需要侦听某个事件: Key.addListener(_root); Key.addListener命令将 主时间轴 或 某个影片剪辑 作为它的参数,当侦听的事件发生时,可以用这个参数指定的对象来响应该事件。 上面的代码指定主时间轴来响应该事件。要让主时间轴对该事件作出响应,还需要设置一个相应的事件处理函数,否则设置侦听器就没有什么意义了。 键盘侦听的事件处理函数有两个:onKeyUp和onKeyDown,如下所示: Key.addListener(_root); _root.onKeyUp=function(){ trace(Key.getAscii()); }; //代码的意思是,当按下一个键并释放后,输出窗口将输出你按下的那个键的Ascii码 当然,你也可以使用影片剪辑作为侦听键盘的对象,只需要使用影片剪辑的路径代替_root作为Key.addListener命令的参数就可以了。 比如下面代码: Key.addListener(_root.mc); _root.mc.onKeyUp=function(){ trace(Key.getAscii()); }; //代码的意思是,当按下一个键并释放后,输出窗口将输出你按下的那个键的Ascii码,意思差不多,但是键盘侦听对象不同,一个是影片mc,一个是主时间轴。 最后给出实例原文件:03.rar 方法四 第四种响应键盘的方法:利用影片剪辑的keyUp和keyDown事件来实现响应键盘 最后一种方法很容易被忽视,但是也有一定的应用价值,最重要的是把概念弄清楚。 影片剪辑包含两个与键盘相关的事件keyUp和keyDown,使用它们也可以实现对按键事件的响应 例如下面的代码: onClipEvent(keyDown){ trace(Key.getAscii()); } //当按下键盘上的一个键的时候,输出窗口将输出按下的这个键的Ascii码值。 函数Key.getAscii表示返回与按键相对应的ASCII码,其中 ASCII码是一个整数,键盘上的每个字符对应一个ASCII码,如字母A对应的ASCII码为65,B对应的ASCII码为66,a对应的ASCII码为97, b对应的ASCII码为98,+ 对应的ASCII码为43等。需要注意的是:只有字符键才有ASCII码,键盘上的功能键是没有ASCII码的。 如果我想在输出窗口中输出与按键相对应的字符,那怎么办? 这时候,你可以使用String对象的fromCharCode函数将ASCII码转换成字符,如将上例的代码改成如下所示: onClipEvent(keyDown){ trace(String.fromCharCode(Key.getAscii())); }; //意思就是说,当按下键盘的一个键,输出按下的这个键相对应的字符,当然除了功能键。 关于String对象的详细解释,大家可以查看动作面板的“对象”/“核心”目录下面。

TOP

flash专栏

已经将此帖不必要的回复删除了!

TOP

flash专栏

y与FLASH配合在一起的做图软件?~用什么好?`

TOP

flash专栏

用FLASH就能解决做图问题,不用再用另外的软件了!

TOP

flash专栏

好!谢谢

TOP

flash专栏

不要客气!

TOP

flash专栏

我要学习

TOP

flash专栏

欢迎!

TOP

flash专栏

谢谢~~~~~真棒~~~~~

TOP

flash专栏

谢谢夸奖。

TOP

flash专栏

是好东西,谢谢
还什么技巧呢?

TOP

发新话题