注:本代码参考网上的loading代码,出处本人未知
本人仅修改并测试使得其使用于任何一个loading调用

function show_loading(loader) {
 var myLoading:MovieClip;
 var loadInfo:MovieClip;
 var _lineBgcolor = "0x666666";
 var _lineColor = "0x0000FF";
 var _lineLen:Number = 200;
 var _lineH:Number = 3;
 var _txtColor;
 var _txtAlign:String = "center";
 var tb:Number;
 var txtFormat:TextFormat = new TextFormat("Arial", null, 0x000000, true);
 //建立一个最高层做loading
 myLoading = _root.createEmptyMovieClip("myLoading", _root.getNextHighestDepth());
 //描绘进度条
 loadInfo = myLoading.createEmptyMovieClip("line", 10);
 loadInfo.lineStyle(1, _lineColor, 20);
 loadInfo.moveTo(0, 0);
 loadInfo.lineTo(_lineLen, 0);
 loadInfo.lineTo(_lineLen, _lineH);
 loadInfo.lineTo(0, _lineH);
 loadInfo.lineTo(0, 0);
 //进度显示文本 , 设置进度条的位置(居中于主场景)
 loadInfo.createTextField("txt", 30, 0, 0, _lineLen, 22);
 loadInfo.txt.autoSize = _txtAlign;
 loadInfo._x = (Stage.width-_lineLen)/2;
 loadInfo._y = Stage.height/2;
 //获得影片大小并stop,再onEnterFrame
 loader.stop();
 tb = loader.getBytesTotal();
 //trace("tb:"+tb);
 myLoading.onEnterFrame = function() {
  if (tb<=0) {
   //有时候会在上面得到tb为0,需要判断一下
   tb = loader.getBytesTotal();
   //trace("tb:"+tb);
  }
  var lb:Number = loader.getBytesLoaded();
  var percent:Number = Math.round(lb/tb*100);
  //trace("lb:"+lb+" / tb:"+tb);
  loadInfo.txt.text = percent+"%";
  loadInfo.txt.setTextFormat(txtFormat);
  loadInfo.lineStyle(_lineH, _lineBgcolor, 10);
  loadInfo.moveTo(0, _lineH/2);
  loadInfo.lineTo(percent*_lineLen/100, _lineH/2);
  if (percent == 100) {
   loader.play();
   delete this.onEnterFrame;
   this.removeMovieClip();
   //把本层loading删除
  }
 };
}

用法:

在第一帧
show_loading(_root);

或者:
b_mc.loadMovie("3.jpg");
show_loading(b_mc);

clear,清除MC内创建的所有图形
delete,删除指定的对象引用并释放内存
remove,通常用不上,普遍应用的是removeMovieClip,删除MC
updateafterevent,通常在setInterval内使用,FLASH自身的定时刷新有点毛病,用了这语句会更精确些
fscommand("command", "parameters")
参数

command 一个传递给宿主应用程序用于任何用途的字符串;或者一个传递给独立 Flash Player 的命令。

parameters 一个传递给宿主应用程序用于任何用途的字符串;或者一个传递给 Flash Player 的值。

返回

无。

说明

动作;使 Flash 影片能够与 Flash Player 或承载 Flash Player 的程序(如 Web 浏览器)进行通讯。还可使用 fscommand 动作将消息传递给 Macromedia Director,或者传递给 Visual Basic、Visual C++ 和其他可承载 ActiveX 控件的程序。

用法 1:若要将消息发送给 Flash Player,必须使用预定义的命令和参数。下表显示可为 fscommand 动作的 command 和 parameters 参数指定的值,这些值用于控制在独立 Flash player(包括播放器)中播放的影片:

命令
参数
目的

quit

关闭播放器。

fullscreen
true 或 false
指定 true,则将 Flash Player 设置为全屏模式。指定 false,则将播放器返回到普通菜单视图。

allowscale
true 或 false
指定 false,则设置播放器以始终按影片的原始大小绘制影片,从不进行缩放。指定 true,则强制影片缩放到播放器的 100%。

showmenu
true 或 false
指定 true,则启用整个上下文菜单项集合。指定 false,则使得除“关于 Flash Player”外的所有上下文菜单项变暗。

exec
应用程序的路径
在播放器内执行应用程序。

trapallkeys
true 或 false
指定 true,则将所有按键事件(包括快捷键事件)发送到 Flash Player 中的 onClipEvent(keyDown/keyUp) 处理函数。


用法 2:若要在 Web 浏览器中使用 fscommand 动作将消息发送到脚本撰写语言(如 JavaScript),可以在 command 和 parameters 参数中传递任意两个参数。这些参数可以是字符串或表达式,在“捕捉”或处理 fscommand 动作的 JavaScript 函数中使用这些参数。

在 Web 浏览器中,fscommand 动作在包含 Flash 影片的 HTML 页中调用 JavaScript 函数 moviename_DoFScommand。moviename 是 Flash Player 影片的名称,该名称由 EMBED 标签的 NAME 属性指定,或由 OBJECT 标签的 ID 属性指定。如果为 Flash Player 影片分配名称 myMovie,则调用的 JavaScript 函数为 myMovie_DoFScommand。

用法 3:fscommand 动作可将消息发送给 Macromedia Director,Lingo 将消息解释为字符串、事件或可执行的 Lingo 代码。如果该消息为字符串或事件,则必须编写 Lingo 代码以便从 fscommand 动作接收该消息,并在 Director 中执行动作。有关更多信息,请访问“Director 支持中心”(Director Support Center)。

用法 4:在 Visual Basic、Visual C++ 和可承载 ActiveX 控件的其他程序中,fscommand 利用可在环境的编程语言中处理的两个字符串发送 VB 事件。有关更多信息,请使用关键字 Flash method 搜索 Flash 支持中心 (Flash Support Center)。

示例

用法 1:在下面的示例中,fscommand 动作设置 Flash Player,以便在释放按钮时,将影片缩放到整个显示器屏幕大小。

on(release){
 fscommand("fullscreen", true);
}
用法 2:下面的示例使用应用到 Flash 中按钮的 fscommand 动作打开 HTML 页中的 JavaScript 消息框。消息本身作为 fscommand 参数发送到 JavaScript。

必须将一个函数添加到包含 Flash 影片的 HTML 页。此函数 myMovie_DoFSCommand 位于 HTML 页中,等待 Flash 中的 fscommand 动作。当在 Flash 中触发 fscommand 后(例如,当用户按下按钮时),command 和 parameter 字符串被传递到 myMovie_DoFSCommand 函数。可以在 JavaScript 或 VBScript 代码中以任何需要的方式使用所传递的字符串。在此示例中,该函数包含一个条件 if 语句,该语句检查命令字符串是否为“messagebox”。如果是,则 JavaScript 警告框(或“messagebox”)打开并显示 parameters 字符串的内容。

function myMovie_DoFSCommand(command, args) {
 if (command == "messagebox") {
  alert(args);
 }
}

在 Flash 文档中,将 fscommand 动作添加到按钮:

fscommand("messagebox", "This is a message box called from within Flash.")
也可以为 fscommand 动作和参数使用表达式,如下面的示例所示:

fscommand("messagebox", "Hello, " + name + ", welcome to our Web site!")
若要测试影片,请选择“文件”>“发布预览”>“HTML”。

注意:如果在 HTML“发布设置”中使用具有 FSCommand 模板的 Flash 发布影片,则自动插入 myMovie_DoFSCommand 函数。该影片的 NAME 和 ID 属性将是其文件名。例如,对于文件 myMovie.fla,该属性将设置为 myMovie。
FSCommand->exec 命令用法试归纳

中心:FSCommand语句中的exec命令可以使swf 文件具有读写磁盘的功能

这部分内容说的是,FSCommand->exec命令与操作系统进行交互的用法,包括如何打开本地文件,存储文件,建立目录,打开浏览器窗口以及其它外部程序。针对MAC机和PC机使用不同的操作系统,FSCommand语句在实际写法上不尽相同,本文以PC机为例进行说明。(MAC机中的情况不作翻译)

适用于Windows 9X的FSCommand->exec命令详细说明:
(注:若要将以下命令句法移植到NT/2000/Me上,不能原封不动的照搬,需要略作改动,请自行实践。)

1、存储文件到硬盘

有时我们想要在用户的机子上留下cookie,或在用户的硬盘上存储一些其它类型的信息,唯一可行的方法就是借助FSCommand,它通过调用用户Windows系统的command.com命令打开MS-DOS窗口实现文件的存储。因为使用DOS命令行的方式生成文件,所以MS-DOS窗口是必然要出现的,但在高配置机子上,这个过程一闪而过,用户不易察觉。使得该命令生效的前提是,含有这个FSCommand语句的swf文件必须是在本机上运行,而不是通过网络来访问。

举例:将swf文件中文本输入框(变量名为:textbox)的内容存到一个新创建的和swf文件位于相同目录下的名为textfile.txt的文件中,并作为值赋给新的变量var。如下书写FSCommand 语句:

打开Action面板选择Normal模式,在语句列表中选取FSCommand语句,转到面板下部:
在Command框中填写:exec (不要复选其后的Expression复选框)
在Arguments框中填写:"command.com" add chr(9) add "/c" add chr(9) add "echo" add chr(9) add "var=" add textbox add ">textfile.txt" (一定要将其后的Expression复选框打上钩!)
若在Expert模式下编写,则应写成:
fscommand ("exec", "command.com" add chr(9) add "/c" add chr(9) add "echo" add chr(9) add "var=" add textbox add ">textfile.txt");

说明:一个chr(9) 表示一个空格;/c为command.com的参数,加上这个参数其后的命令才能被执行;>是重定向符,我们正是靠它将变量值写入textfile.txt中。另外,还可指定文件存放目录,如要在用户桌面上建立textfile.txt文件,那么将">textfile.txt"改为">c:\windows\desktop\textfile.txt"
【注】:\ 是转意字符。在Flash中,“ ”被当成保留关键字,已失去了本来的意义,所以要想显示斜杠 ,必须加前缀转意符 ,使之是还原本来的意义,连在一起写就成了两个斜杠的形式。又比如,要想表示单引号,须写成 ’ 这样的形式;实现回车的效果,须用转意符号 。

2、删除硬盘上的文件

通过FSCommand->exec命令还可以删除硬盘上的文件,下面的语法只适用于Windows 9X系统。

举例:将前面创建的textfile.txt删除

打开Action面板选择Normal模式,在语句列表中选取FSCommand语句,转到面板下部:
在Command框中填写:exec (不要复选其后的Expression复选框)
在Arguments框中填写:"command.com" add chr(9) add "/c" add chr(9) add "del" add chr(9) add "textfile.txt" (一定要将Expression复选框打上钩!)
若在Expert模式下编写,则应写成:
fscommand ("exec", "command.com" add chr(9) add "/c" add chr(9) add "del" add chr(9) add "textfile.txt");

警告:使用这个命令要慎重,因为是采用DOS命令删除文件,在回收站里是看不到的被删文件的。还有,万勿用来做坏事。

3、在硬盘上新建目录

通过执行FSCommand->exec生成的cookie若置于和所属swf文件位于同一目录下,容易被识别,用户在清理系统垃圾时极有可能将其清除,那样的话就失去意义了,考虑到用户一般不会轻易删除文件夹,我们专门新建一个目录存放cookie不失为一个好计。

举例:在swf文件所在目录下新建一个名为textfile的子目录

打开Action面板选择Normal模式,在语句列表中选取FSCommand语句,转到面板下部:
在Command框中填写:exec (不要复选其后的Expression复选框)
在Arguments框中填写:"command.com" add chr(9) add "/c" add chr(9) add "md" add chr(9) add "textfile" (一定要将Expression复选框打上钩!)

若在Expert模式下编写,则应写成:
fscommand("exec","command.com" add chr(9) add "/c" add chr(9) add "md" add chr(9) add "textfile"

说明:md是DOS命令集中用来建立目录的专用命令;如果换成rd则可以删除硬盘上已存在的目录,提醒诸位三思而后行。

4、由swf文件打开其它类型的文件

我们都知道,调用一个可执行程序(扩展名为.exe或.bat或.com) 和打开一个一般文件是不同的,前者可自动运行,而后者需要相应的可执行程序支持打开,像扩展名为doc和pdf的文件必须由相应的可执行程序才能打开阅读。分三种情况考虑:
●开启一个外部可执行程序:扩展名.exe可以省略。具体来说,若一个exe文件(假设为another.exe)和该swf文件本身在同一个目录下,则直接键入程序文件名即可。如:
fscommand("exec","another")
否则,应写明路径。如打开IE浏览器窗口:
fscommand("exec","c:\progra~1\intern~1\iexplore")
//注意DOS下对长文件(夹)名的处理形式。
下面两种情况也可以不写路径——
(1)当可执行程序是在c:windows目录下时,可以不写路径。如调用windows的计算器,下面三种写法均可:
fscommand("exec","c:\windows\calc.exe")
fscommand("exec","c:\windows\calc")
fscommand("exec","calc")
(2)调用DOS命令也可省略路径。如下例打开MS-DOS下的Edit编辑器:
fscommand("exec","edit.com")
如果熟悉批处理文件写法,通过FSCommand->exec命令执行批处理文件可以一举多得。

●调用默认程序打开一般文件:这种情况不能省略扩展名,同样要注意文件路径。比如我们要打开和该swf文件本身在同一个目录下的名为fs.htm的文件,则命令写作:
fscommand("exec","start" add chr(9) add "fs.htm")
执行后,如果用户机子默认的浏览器是IE,则自动调用IE打开这个网页文件。

●指定程序打开一个一般文件:Windows并未规定一种类型的文件只能由一种程序打开(比如.txt文件既可以用记事本打开,也可以用写字板阅读),这就使我们可以任意选择可用于打开一般文件的可执行程序。当然前提是在大多数用户机子上都能够找到我们所指派的可执行程序,因此实际上能选取的是那些常用的、随windows 9X预装的程序,像记事本(notepad)、写字板(write)、IE浏览器(iexplorer)、command命令等等。如我们希望调用客户机上的“写字板”程序,打开一个和该swf文件本身在同一个目录下的名为fs.txt的文本文件,可以这么写命令:
fscommand("exec","c:\windows\write.exe" add chr(9) add "fs.txt")

前已述及,凡是在c:windows目录下的可执行程序,在书写FSCommand->exec命令时都可以省略路径,简写成:fscommand("exec","write" add chr(9) add "fs.txt") 也是正确的。

总之,FSCOMMAND命令是FLASH中功能很强的一条语句,大家好好掌握一定
会有很好的效果!:)
日前,美国著名科普杂志《生活科学》对民间流传较广的十个与科学有关的说法进行了分析,以辨是非。

  1.老母鸡炖汤营养价值高

  民间有用老母鸡炖汤的说法,认为它的营养价值比较高。其实,老母鸡炖汤的最大好处是味道浓厚、鲜美,至于营养价值,它并不比仔鸡高出多少。

  首先,仔鸡的肉里含蛋白质较多,而老母鸡肉中蛋白质含量较少。其次,老母鸡的鸡肉中多是弹性结缔组织,只能被人体少量吸收,而仔鸡的鸡肉很细嫩,含弹性结缔组织比较少,更有利于人体消化吸收。

  2.无头鸡照样“生龙活虎”

  这不是在骗人,有些鸡被砍掉脑袋后,的确还可以摇摇摆摆地走来走去,而且有些被砍下脑袋的鸡还不只活几分钟。这是因为鸡尽管被“斩首”,但很多时候,鸡的脑干某些部分仍完好无损,而鸡的大部分反射由脑干控制。

  1945年美国一名农夫就因为拥有一只无头鸡“迈克”一度登上《时代》杂志的封面,这只无头鸡在丢头之后活了18个月。

  3.人类大脑只用了1/10

  核磁共振成像清楚地显示,人类绝大部分大脑皮层都得到了有效利用,即使打瞌睡的时候也不例外。

  4.高楼上掉硬币砸死路人

  硬币并不是最会利用空气动力学的武器。即使一枚硬币从1250英尺高的帝国大厦上“失足”,以足够快的降落速度砸到一个倒霉蛋,也不会造成致命伤害。

  因为硬币很薄,质量很轻,在空气的浮力作用下,它下落的过程不可能是垂直的,倒是有点像飘落的树叶,其冲击力因此大减。

  5.太空无重力

  太空术语“零重力”造成人们的普遍误解。实际上,重力无处不在,太空也是如此。宇航员看起来没有重力,是因为他们在一直朝地球方向连续地做自由落体运动,凭借他们的水平运动将身体浮起来。

  6.成年人不再长新脑细胞

  并不是所有的脑细胞一到成年阶段就宣布“罢工”。大脑在面临衰老挑战的时候,会产生出一种称为“树枝状结晶”的新物质。在50岁至70岁之间,这种物质在我们大脑中一直蓬勃生长。

  7.打哈欠会“传染”

  美国德雷克塞尔大学的心理学家史蒂文·普拉捷克认为,打哈欠“传染”更容易在移情人群,即那些喜欢将自己假想成他人的那些人中发生。普拉捷克说,精神病患者很少会被别人打哈欠所传染,因为他们很难进行移情活动。

  8.雨中狂奔少挨雨淋

  有关这个问题的数学方程式已经证明,在雨中狂奔确实可以少挨雨淋。但原因并不像我们想象得那么简单,这个问题的复杂因素包括落到行人头上的雨点数量和落到胸前的雨点数量。

  9.猫跌落时总用脚着地

  很多研究证明,当从很高的地方跌落时,猫的确会用脚轻轻地着地。当然也有例外:你把猫从1英尺或更矮的地方头朝下、脚朝上地扔下,最先着地的就不是脚了。

  10.动物能预测自然灾害

  没有任何证据显示,动物拥有神奇的第六感,可以预知自然灾害的发生。敏锐的嗅觉、听觉和超强的本能足以让它们在飓风和海啸发生时“占领”安全的山坡。即便如此,它们也经常在自然灾害中丧生。
分页: 360/361 第一页 上页 355 356 357 358 359 360 361 下页 最后页 [ 显示模式: 摘要 | 列表 ]

阅读推荐

服务器相关推荐

开发相关推荐

应用软件推荐