📄 2.txt
字号:
.1 加载外部数据 04/07/05 凌晨 3:33
loadVariables(url,target[,variables])
url:绝对或相对路径
target:接收变量的层或动画片段,如 _root.movieclip
variables:可选参数,发送变量的方法。POST/GET
加载的文件格式应为:
&var1name=value&var2name=value&var3name=value....
应用:控制动画的流程或显示在文本框中
制作演示动画:
目的:
制作步骤:
1. 如图,创建自己的界面,其中按钮、动态文本框必不可少:)
2. 给文本框定义变量名称,如图:(feelings是我给定义的名称,你可以按照自己的意愿定义)
3. 制作文本文件,一般文本文件为 .txt 后缀,我这里使用了 .tv 的后缀,名字为 feelings.tv
我这里把文本文件和动画文件放在同一文件加内,设置路径时有用。
文本内容:&feelings=hello word!
4. 给按钮加 ActionScript 代码:
on (release) { //当鼠标按下并弹起
loadVariables("./feelings.tv",this); //加载外部文件到当前时间轴
}
完成!
实例:
http://www.everu.net/forum/my_images/phpandflash/1_1_1/1_1_1.swf
源文件下载:1_1_1.rar
注意:通过使用纯 loadVariables() 命令所加载的数据,如上面的例子,
都将被浏览器高速缓存器来。这就意味着,如果您改变了文件,浏览器并
不会受到干扰,去读取新的数据。浏览器认定他现在已包含了一个非常好
的副本。有很多方法可以克服这一问题,但简单的方法是,为您加载的文
件名添加一个随即元素:
loadVariables("feelings.tv?"+new Date().getTime());
new Date().getTime()函数生成了当前的 UNIX 时间戳。
但是还请注意,如果你使用 ctrl+enter 来测试的话,您将会看到一
则错误信息。这是因为对文件的请求是直接指向操作系统而不是通过 web
浏览器。因此,上文的命令并不能识别出添加到文件名后的数据,它将会
提示一则出多信息:
Error opening URL"feelings.tv?68" _blank?>file:///<PATH>feelings.tv?68"
此处 <PATH> 是 flash 动画所在的目录。
另外,你还必须知道,当调用 loadVariables 时,并不一定就立即加
载数据,而动画在执行下一步操作之前,也并不会自动等候数据被加载。因
此,最好有一种方法能检测出 flash 动画是否已经接收到所有数据。
我们可在 flash 动画中采用两种方法来检测数据是否已被加载,随后
我就学习这种方法,然后再讲给大家:) 谢谢。。。早晨了
1.2 动画显示加载过程
第一种检测数据是否被加载到 flash 的方法是 onClipEvent 处理程序。
onClipEvent 的语法:
onClipEvent(event) {
......
}
此处 event 是 onClipEvent 处理程序可以辨认的任何事件,见列表:
┌───────┬───────────────────────┐
│ 事件 │ 触发时间 │
├───────┼───────────────────────┤
│load │当时间轴上出现动画片段实例时 │
├───────┼───────────────────────┤
│enterFrame │当播放动画片段实例的每个帧时,Action附加到帧的│
│ │任何动作之前执行。 │
├───────┼───────────────────────┤
│unload │当动画片段实例从时间轴中删除之后播放第一个帧时│
│ │Action在附加到帧的任何动作之前执行 │
├───────┼───────────────────────┤
│mouseDown │当单击鼠标左键时 │
├───────┼───────────────────────┤
│mouseUp │当松开鼠标左键时 │
├───────┼───────────────────────┤
│mouseMove │当移动鼠标时 │
├───────┼───────────────────────┤
│keyDown │当按下任意键时 │
├───────┼───────────────────────┤
│keyUp │当先前按住不放的键北松开时 │
├───────┼───────────────────────┤
│data │当数据被作为调用 loadVariables 或 loadMovie 的│
│ │结果被接收时。当使用 loadVariables 时,该事件 │
│ │只被触发一次,仅在最后一个变量被加载之后。如果│
│ │同时也是使用了 loadMovie,则该事件在加载动画的│
│ │每个部分时被重复触发。 │
└───────┴───────────────────────┘
onClipEvent 处理程序内执行的所有语句都是相关于它所附着的动画片段实
例。就是说里面的所有变量都使动画片段实例的时间轴中的变量,被调用的
动画片断函数也同样作用于动画片段实例的时间轴。
这里着重学习 data 事件。这里我们修改一下上面的动画,以为了展示
onClipEvent 处理程序的用途。
目的:加载数据时显示一个“数据读取中...”的帧,而当数据加载完成之
后,就自动切换到另一个用于显示数据的帧中。
注:如果你在本地测试看不到“数据读取中...”的帧,那么你将动画上传到
web 服务器上,如果还看不到,那就把加载的数据内容换成康熙大字典。
制作步骤:
1. 首先全选,并换成电影符号,起一个合适的名字,因为 onClipEvent 处理
程序只能添加到动画片段中。
2. 将电影符号第一帧定义标签为 display,然后制作第 loading 帧,里面
放你认为合适的加载数据时显示的画面。
3. 回到 display 中修改按钮的 ActionScript :
on (release) {
loadVariables("./feelings.tv",this);
gotoAndStop("loading");
}
修改的目的是,当加载数据时电影停在 loading 帧。
4. 返回到主时间轴,为动画实例添加 ActionScript :
onClipEvent(data){
gotoAndStop("display");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -