现在的位置: 首页 > 综合 > 正文

flash教程-Action 简明解释

2012年02月20日 ⁄ 综合 ⁄ 共 9540字 ⁄ 字号 评论关闭
1、Goto:跳到一个指定的帧(Frame)
Scene: 指定 Scene
Frame:Number,Label,Expression,Next Frame,Previous Frame 可以选择 Frame 的编号,标号,通过表达式,下一帧,前一帧
Expression: 定义表达式
Control:Go to and Play,Go to and Stop 通过选择这个项目来确定到达指定的帧以后是继续播放还是停止
例子:
Go to and Play (1)  跳到第一帧播放
Go to Next Frame  跳到下一帧播放
Go to and Stop ("intro")  跳到标号为 intro 的帧播
2、Play:播放
Stop:停止
Toggle High Quality:切换画面的细节程度
Stop All Sounds:停止所有声音
Get URL:打开指定的网址
URL: 网址
Windows:_self,_blank,_parent,_top 打开网址时使用的目标
Variables:Don’t Send,Send use GET,Send use POST 变量的传递方式
例子:
Get URL ("next.asp", window="_blank", vars=POST) 在新窗口中打开 next.asp,并且传递参数
3、FScommand:调用命令
Command: 命令
Arguments: 参数
For standalone player:fullscreen,allowscale,showmenu,exec,quit 播放器使用的固定命令和参数
例子:
FS Command ("fullscreen", "true") 设置全屏幕播放
4、Load/Unload Movie: 调入/释放外部的影片
Action:Load movie into location,Unload movie from location,Load variables into location: 可以选择是否调入新影片,释放已经调入的影片,调入变量
URL:影片的网址
Location:Level,Target: 调入的层,或者是某一目标对象的位置
Variables:Don’t Send,Send use GET,Send use POST: 变量的传递方式
例子:
Load Movie ("test.swf", 1): 把 test.swf 调入到第一层
Load Movie ("test.swf", "loadit", vars=GET): 把 test.swf 调入到 loadit 目标对象的位置
Unload Movie ("loadit"): 把 loadit 目标对象处的影片释放
Load Variables ("makeit.asp", 2, vars=GET): 调用 makeit.asp 并接收返回的变量
5、 Tell Target: 指定目标对象
Target: 目标对象
例子:
Begin Tell Target ("obj")  指定目标对象 obj
End Tell Target
6、If Frame is Loaded: 判断某帧是否调入
Scene: 指定场景
Frame:Number,Label,Expression: 指定帧,标号或者表达式
Expression: 表达式
例子:
If Frame Is Loaded (Scene 1, "end")
End Frame Loaded
:判断场景一的标号为 end 的帧是否调入
7、On MouseEvent 鼠标时间响应
Event:Press,Release,Release Outside,Roll Over,Roll Out,Drag Over,Drag Out,Key Press 各种事件:按下,放开,在外面放开,焦点移入,移出,拖过,拖出,按键按下
例子:
On (Press) 鼠标按下的时候
End On
On (Key: s)  键盘上 s 按下的时候
End On
8、If 判断条件是否成立
Condition: 条件
Add Else/Else If clause: 加入 Else 再次判断
例子:
If (a=10)  如果 a=10 那么……
End If
If (a=10)  如果 a=10 那么……不然……
Else
End If
9、Loop  循环
Condition: 条件
例子:
Loop While (a=10)  如果 a=10 那么循环
End Loop
10、Call  调用函数帧或对象
Frame: 函数帧
例子:
Call ("make")  调用 make 帧程序
11、 Set Property  设置属性
Set:Y Positon,X Position,Y Scale,X Scale,Alpha,Visibility,Rotation,Name,High quality,Show focus rectangle,Sound buffer time  设置 y 坐标,x坐标,y 放大倍数,x 放大倍数,透明度,可视否,旋转角度,名称,精细度,焦点矩形框是否显示,声音缓冲时间(默认5秒)
Target: 目标对象
value: 值
例子:
Set Property ("aoe", X Position) = "12" 设置目标对象 aoe 的 x 坐标为 12
Set Property (Show focus rectangle) = "0" 取消焦点框
12、Set Variable 设置变量
Variable: 变量
value: 值
例子:
Set Variable: "test" = 10 设置 test=10
13、Duplicate/Remove Movie Clip  复制对象
Action:Duplicate movie clip,Remove duplicate movie clip  可选择是复制还是删除
Target: 目标对象
New name: 新目标对象的名字
Depth: 深度
例子:
Duplicate Movie Clip ("aoe", "aoe2", 1) 复制 aoe 一个新的动画,名字叫 aoe2
Remove Movie Clip ("aoe2") 删除目标对象 aoe2
14、Drag Movie Clip  拖动影片片段
Start drag operation: 开始拖动
Target: 目标对象
Constrain to rectangle:Left,Top,Right,Bottom 鼠标的位置,左上右下
Lock mouse to center:  鼠标放置在中心
Stop drag operation  停止拖动
例子:
Start Drag ("aoe", L=2, T=3, R=4, B=5)  拖动目标对象 aoe,位置在 L=2, T=3, R=4, B=5
Start Drag ("aoe", lockcenter)  拖动目标对象 aoe,位置在中心
Stop Drag  停止拖动
15、Trace   跟踪
Message: 信息
例子:
Trace ("aoe")  显示 aoe
Trace (aoe)  显示 aoe 的值
16、 Comment   注释
Comment: 注释
例子:
Comment ("计算")  注释:计算
在ActionScript中变量不需要声明,但是,声明变量是良好的编程风格,这便于掌握一个变量的生命周期,明确知道某一个变量的意义,有利于程序的调试。通常,在动画的第一桢就已经声明了大部分的全局变量并为它们赋予了初始值。每一个MC对象都拥有自己的一套变量,而且不同MC对象中的变量相互独立且互不影响。
变量名
变量名需符合以下几点:
1) 变量名必须是一个标识符,不能包含任何特殊符号;
2) 变量名不能是关键字及布尔值(true和flase)
3) 变量名在其作用域中唯一。
变量的类型
在Flash中不需要显式的声明一个变量的类型,当变量被赋值的时候,它的类型被动态的确定,当然,也可以把赋值语句理解为变量的声明语句,例如:
x = 3;
上面的表达式声明了一个x变量,其类型为number类型,并且x的值为3。对变量x的赋值可能还会改变它的数据类型:
x = "hello";
此时变量x将从number类型改变为string类型。这同C语言等其他高级语言好像有些不同,但其实Flash中的赋值语句不仅仅是一个赋值功能,它还起到了变量声明的作用。
声明了却没有被赋值的变量类型被称为无类型变量。
Flash5 ActionScript中的变量[2]
在特定的条件下,ActionScript可以自动将变量的类型进行转换。例如,当为trace语句传递一个值以后,这个值被自动转换成字符串类型输出到Output窗口中。在表达式中,ActionScript会根据需要对变量进行类型转换,如下例:
"The number is " + 7
ActionScript将数字7自动转换成字符串"7",并将它添加在前面字符串的末尾:
"The number is 7"
在调试脚本的时候,需要确切掌握一个变量的数据类型,因为数据类型决定了变量的行为,ActionScript中提供了typeof操作符,用于确定某一个变量的类型:
trace( typeof( aVariable ));
另外,Flash 5中提供了两个类型转换函数。Number函数可以将一个字符串转换成数字,相应的,String函数可以将一个数字转换成一个字符串,它们的用法比较简单,在Flash 5的脚本编辑面板中已经提供了充分的提示。
变量的作用域
ActionScript中有局部变量和全局变量之分,全局变量在整个动画的脚本中都有效,而局部变量只在它自己的作用域内有效。声明局部变量需要用到var语句。例如,在下面的例子中,i是一个局部的循环变量,它只在函数init中有效:
function init(){
 var i;
 for(i=0; i<10; i++){
 randomArray[i] = random(100);
 }
}
局部变量可以防止名字冲突,而名字冲突可能会导致致命的程序错误。例如,变量n是一个局部变量,它可以用在一个MC对象中计数,而另外一个MC对象中可能也有一个变量n,它可能用作一个循环变量,因为它们有不同的作用域,所以并不会造成任何冲突。
使用局部变量的好处在于减少程序错误发生的可能。比如,一个函数中使用局部变量,那么这个变量只会在函数内部被改变,而一个全局变量可以在整个程序的任何位置被改变,使用错误的变量可能会导致函数返回错误的结果,甚至使整个系统崩溃。
Flash5 ActionScript中的变量[3]
此外,函数的参数也将作为该函数的一个局部变量来使用,例如:
x=3;
function test(x)
{
 x=1;
 a=x;
}
test(x)
程序执行之后的结果是a=1,x=3。从这个例子可以看出test函数中的x参数的确是作为函数内部的局部变量来处理了。
变量的声明
在程序中,给一个变量直接赋值或者使用setVariables语句赋值就相当于声明了全局变量;局部变量的声明需要用var语句。在一个函数体内用var语句声明变量,该变量就成了这个函数的局部变量,它将在函数执行结束的时候被释放;在根时间轴上使用var语句声明的变量也是全局的,它们在整个动画结束的时候才会被释放掉。
在声明了一个全局变量之后,紧接着再次使用var语句声明该变量,那么,这条var语句无效,例如:
aVariable = 10;
var aVariable;
aVariable += 1;
在上面的脚本中,变量aVariable被重复声明了两次,其中var语句的声明被视为无效,脚本执行后,变量aVariable的值将为11。
注:call语句同样会为它调用的程序块生成一个局部变量作用域,当被调用的脚本结束的时候,这个局部作用域也同时消失。Flash 5中call语句可以用with语句取代。
Flash5 ActionScript中的变量[4]
注:call语句同样会为它调用的程序块生成一个局部变量作用域,当被调用的脚本结束的时候,这个局部作用域也同时消失。Flash 5中call语句可以用with语句取代。
使用trace语句可以检测变量的值,例如trace(aVariable)将变量aVariable的值转换成字符串传递到Output窗口中,在调试模式下,还可以随时改变和获取某一个变量的值。
变量的使用
在引用一个变量的时候,必须先进行声明(使用var语句或者直接赋值),如果变量没有得到初始化,那么,在下面的例子中,将会产生错误:
gotoAndPlay( aFrame );
其中aFrame是一个标签,因为aFrame没有被声明,gotoAndPlay将会被错误的执行,跳转到一个不确定的位置。
变量的内容可以随时被改变,变量的类型决定了它们的行为。请注意下面一段关于变量类型的说明,其中一些特征是ActionScript中所特有的。
简单数据类型传递的是变量的值,就是说,变量的内容会被拷贝一份之后才被传递出去,不论是在赋值语句中,还是作为参数传递给一个函数都是一样:
var x = 4;
var y = Math.sqrt(x);
上面例子中,变量x的值被复制后传递给sqrt函数,并将返回结果2赋值给变量y,变量x的值保持不变。对象数据类型包含有大量复杂的信息,具有这种数据类型的变量并不保存对象的实际内容,它们保存的只是一个指向对象的指针,当调用对象的属性或者方法的时候,根据这个指针找到该对象实际的位置并返回所需要的内容。
Flash5 ActionScript中的变量[5]
下面是一个通过指针进行传递的例子:
var myArray = ["Holly", "Tom"];
var newArray = myArray;
myArray[1] = "Marry";
trace(newArray);
上面的例子中,一个数组对象myArray有两个元素,newArray被赋值为指向myArray的指针,当myArray的第二个元素被改变之后,所有指向它的其它变量内容也会改变,最后的trace语句将会把["Marry", "Tom"]输出到输出窗口中。
下面是一个将对象类型的变量作为参数传递给函数的例子:
function initArray(newArray){
 var i;
 for ( i=0; i<10; i++ ){
 newArray[i] = random( 100 );
 }
}
var myArray = new Array();
initArray( myArray );
上例中,myArray被传递到函数initArray中,因为传递的是对象指针,所以在函数内,数组myArray将被初始化。
在ActionScript中,对一般对象的引用称为强引用,对MC动画的引用称为弱引用。强引用是指只要还有一个指针指向该对象,那么这个对象就不能被释放;弱引用是指如果MC动画结束之后,所有指向该MC动画的指针将随之而不再有效。
FLASH的全屏技术
一、不用浏览器直接用Flash播放器播放:
  
A、不显示Flash播放器菜单栏的全屏(类似屏保效果),在第一帧处的Actions用FS Command 命令,在For standalone player 选项中选择fullscreen ,这时就会看到arguments中为true,Command中是fullscreen。运行中可按ESC退出或设一按钮在Actions上,用FS command在For standalone player选项中选择quit也可退出。附带说一句:For standalone player上的所有选项只适合于用Flash播放器播放的情况。在浏览Flash动画时,如果按CTRL+F键,可实现全屏与非全屏的切换。
 
  B、如果仅是要使swf文件占满Flash播放器的窗口,什么也不需要做。直接击swf文件。
  
  以上一类全屏多用在非互联网环境的运行。
  
二、在非Flash播放器(如IE)中运行:
 
  A、只占满浏览器:这种情况相对简单,不管你制作的Flash大小是否为800×600,只要在调用swf文件的HTML中将WIDTH和HEIGHT的参数设为100%即可,当然也可以在Flash导出HTML文件的设置中进行设置,方法是:打开File菜单;选Publish Settings弹出导出设置对话框;在HTML标签下的Dimensions选项,下拉后选中Percent(百分比),并在WIDTH 和HEIGHT框中填100,运行这个与swf同名的HTML文件则与直接加语句效果相同。这种占满浏览器的全屏与swf文件的设置无关,但最好设置的大小在700×400左右,否则容易导致图像(主要是在Flash中调用的位图)、汉字的失真。
  
B、不显示浏览器菜单栏、工具栏的全屏。这种全屏稍稍复杂,与Flash的设置无关,但要借助javascript来完成。方法是:在HTML文件中的与之间加入以下代码
  也可以在swf文件的第一帧Actions上的URL命令上加上
  javascript:window.open(″*.swf″,″″,″fullscreen=1,menubar=no,width=800,height=600″)
  这种全屏类似屏保,用ALT+F4或设置按钮退出。把fullscreen设为=0,则是显示浏览器菜单栏、工具栏的全屏。(注:*.swf 是你所要显示的Flash动画的文件名)
帮你搞定getURL指令
既然是网络动画,那么FLASH动画与“超级链接”的联系是必不可少的了,下面我们对FLASH中一个常用且非常重要的一个ACTION函数getURL( )做一个总结。
首先getURL触发的方式主要有两种:
[1]观众被动链接方式 在动画时间线上的某一贞上添加getURL指令,动画播放到这一贞时自动链接到getURL参数指定的页面地址。
[2]观众主动链接方式 在场景中的某一个按钮上添加getURL指令,按钮被触发时,动画链接到getURL参数指定的页面地址。
它在ACTION面板中的位置:
FLASH5.0中:ACTIONS——getURL
FLASH MX中:ACTIONS——Browser/Network——getURL
语法形式:getURL("url","window","variables");
参数说明:
[1]url参数:url用来获得文档的统一定位资源。注意填写的时候要书写完整比 www.sina.com.cn可以在IE地址栏里直接书写,但在这里,我们必须写成 http://www.sina.com.cn才可以,当然FTP地址、CGI脚本等也都可以作为其参数。
以上是绝对地址,它完整书写了统一定位资源。
     其实这里也可以使用相对地址:
     1如果SWF与要打开的资源属于同一目录下,可直接书写要打开的文件名及后缀。如getURL("aaa.swf);
     2如果资源在下一层目录,就以/开头,如getURL("/aaa.swf");
     3如果资源在上层目录,就以../开头,如gerURL("../aaa.swf)";
                     以上说的目录是指SWF文件存放的目录为基准。
   [2]windows参数:设置所要访问链接的网页窗口打开方式。可自己输入贞或窗口名称(配合Dreamweaver里框架的设置)。也可以通过下拉列表选择:
_self:在当前的浏览器打开链接。
_blank:在新窗口打开网页。
_parent:在当前位置的上一级浏览器窗口打开链接。若有多个相互嵌套的框架,而又想所链接的url只替换影片自身所在的页面时,可以使用这一选项。
_top:在当前浏览器上方新开一个链接。如果你在Dreamweaver里设置了一些框架,本影片位于某一框架中,当你希望链接的URL不替代任何框架而出现在所有框架之上时,OK,选它好了。
    [3]Variable参数:规定参数的传输方式。大多数情况下,其默认参数为Don't Send。如果要将内容提交给服务器的脚本,就要选Send Using GET或者Send Using POST。"。"GET"表示将参数列表直接添加到url之后,与之一起提交,一般适用与参数较少且简单的情况,"POST"表示将参数列表单独提交,在速度上会慢一些,但不容易丢失数据,适用与参数较多较复杂的情况。
URL的其他用途:
[1]邮件程序触发
利用getURL实现邮件程序的触发效果(当你点该按钮时,自动打开OUTLOOK等本地机默认的邮件程序)只需要这样书写getURL("mailto:flasher@flasherclub.com")就可以了,注意mail和to之间是没有空格的哦。邮件地址自己按需要更改。
[2]桌面快捷方式链接
记得上次弄个全屏动画当桌面,桌面上的快捷方式连接一般的地址都好说,如getURL("E:\我的文档\FLASH\FLASH GAME");但作为桌面必须要个[我的电脑][我的文档]之类特殊的链接吧,我要告诉你我的失败教训:如果你这样书写getURL("我的电脑");是无效的,下面给出几个比较特殊的桌面链接参数:
链接[我的电脑]gerURL("file&:///::{20D04FE0-3AEA-1069-A2D8-08002B30309D}");
链接[我的文档]gerURL("file&:///::{450D8FBA-AD25-11D0-98A8-0800361B1103}");
链接[网上邻居]getURL("file&:///::{208D2C60-3AEA-1069-A2D7-08002B30309D}");
链接[控制面版]gerURL("file&:///::{20D04FE0-3AEA-1069-A2D8-08002B30309D}/::{21EC2020-3AEA-1069-A2DD-08002B30309D}");
链接[回收站]getURL("file&:///::{645FF040-5081-101B-9F08-00AA002F954E}");
[3]调用网页中的javascript函数
格式:getURL("javascript:function()");
其中function是HTML中定义过的函数或函数库中的函数。
原理:当动画执行getURL指令时,就会开始搜索本动画swf文件所在html页面当中名为function的javascript函数,并立即执行该函数。
这里举个最常见的例子——利用getURL调用javascript打开新窗口
方法如下:
将下面的代码加到Flash按钮上
on (release) {
getURL ("javascript:openNewWindow(‘URL’,'WindowName','Width,Height,Tool bar,Menu bar,Location bar,Scroll bar,Status bar,Resizable')");
}
具体参数设置如下:
URL -> 弹出新窗口的页面地址
Width -> 窗口宽度
Height -> 窗口高度
Name -> 窗口名
Tool bar -> 是否需要工具栏
Menu bar -> ........菜单栏
Location bar -> ....地址栏
Scroll bar -> .....滚动条
Status bar -> ......状态栏
Resizable -> 是否可以改变大小
发布成HTML格式,然后打开该文件,给它添加一段代码,用来定义一个名为openNewWindow的函数。

这段函数的功能就是用“以features为特征的且名为Name的新窗口”打开“地址为URL的网页文件”。  

抱歉!评论已关闭.