快速业务通道

FLASH教程:AS工程中Loading的应用

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-07

  今天又来介绍Loading...(-_-!!!...好像整天都介绍Loading..希望没误导各位...)

首先..由于AS工程没有帧..所以不能用常用的方法来做Loading..这里介绍的方法使用元标签Frame(应该是元标签吧?还是叫元数据标签).

网上对Frame的介绍是...使用指定的类替换文档类...并把其它的东西都丢到了该类的第二帧...

概念就不多说了...英文好的可以看看这个文章... http://www.bit-101.com/blog/?p=946

先看看效果..(PS...Load完以后有CD的艳照喔...~~xixi); 放代码
Preloader类:
01.package
02.{
03. import Flash.display.DisplayObject;
04. import flash.display.MovieClip;
05. import flash.display.StageScaleMode;
06. import flash.events.Event;
07. import flash.events.ProgressEvent;
08. import flash.text.TextField;
09. import flash.text.TextFormat;
10. import flash.utils.getDefinitionByName;
11. /**
12. * 加载类,由于原内容会放到此类的第二帧~所以需要使用MovieClip;
13. * @author L4cd.Net
14. */
15. public class Preloader extends MovieClip
16. {
17. [Embed(source="l4cd_48_48.jpg")]
18. private var LOGOClass:Class;
19. private var text:TextField;
20. public function Preloader()
21. {
22. //不多说了
23. stage.scaleMode = StageScaleMode.NO_SCALE;
24. stage.showDefaultContextMenu = false;
25. //显示一张图片..非必要
26. with(addChild(new LogoClass()))
27. {
28. x=(500-48)/2;
29. y=(380-48)/2;
30. }
31. //加一个textField显示进度
32. text = addChild(new TextField()) as TextField;
33. with(text)
34. {
35. defaultTextFormat = new TextFormat("宋体",12,0,null,null,null,null,null,"center");
36. mouseEnabled = false;
37. height = 16;
38. x = (500-100)/2;
39. y = 35+(380-15)/2;
40. }
41. //重要~侦听~
42. loaderInfo.addEventListener(ProgressEvent.PROGRESS,progress);
43. loaderInfo.addEventListener(Event.COMPLETE,complete);
44. }
45. //显示进度
46. private function progress(e:ProgressEvent):void
47. {
48. text.text = (e.bytesLoaded/e.bytesTotal*100).toFixed(2)+"% Loaded";
49. }
50. private function complete(e:Event):void
51. {
52. //重要..加载完后...我们跳转到第二帧
53. gotoAndStop(2);
54. //获取文档类...然后显示,对于此步操作..有多种方法..有人习惯直接把原文档类addChild到此类当中..
55. var mainClass:Class = Class(getDefinitionByName("ASProjectLoadingExample"));
56. stage.addChild(new mainClass() as DisplayObject);
57. //删除此类
58. destroy();
59. }
60. private function destroy():void
61. {
62. loaderInfo.removeEventListener(ProgressEvent.PROGRESS,progress);
63. loaderInfo.removeEventListener(Event.COMPLETE,complete);
64. parent.removeChild(this);
65. }
66. }
67.} AsProjectLoadingExample类:
01.package {
02. import flash.display.Bitmap;
03. import flash.display.BitmapData;
04. import flash.display.Sprite;
05. import flash.geom.Matrix;
06.
07. [SWF(width="500",height="380",backgroundColor="#FFFFFF",frameRate="24")]
08. //注意此行,Preloader为类名
09. [Frame(factoryClass="Preloader")]
10. public class AsProjectLoadingExample extends Sprite
11. {
12. [

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号