加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flex自定义Loading界面

发布时间:2020-12-15 01:42:10 所属栏目:百科 来源:网络整理
导读:这个方法网上已经有人写过例子... 在这里我只是自己做个实例并记录一下.. 首先~自定义Flex加载的原理其实就是继承mx.preloaders.DownloadProgressBar类..然后重写相关的方法.. 查看源码打印关于此插件 01. package 02. { 03. import flash.display.*; 04. im

这个方法网上已经有人写过例子...
在这里我只是自己做个实例并记录一下..
首先~自定义Flex加载的原理其实就是继承mx.preloaders.DownloadProgressBar类..然后重写相关的方法..

查看源码打印关于此插件

01.package

02.{

03. import flash.display.*;

04. import flash.events.*;

05. import flash.net.*;

06. import flash.text.TextField;

07. import flash.text.TextFormat;

08.

09. import mx.events.FlexEvent;

10. import mx.preloaders.DownloadProgressBar;

11.

12. public class LoadingExampleProgressBar extends DownloadProgressBar

13. {

14. private var logo:Loader;

15. private var txt:TextField;

16. private var _preloader:Sprite;

17. public function LoadingExampleProgressBar()

18. {

19. logo = new Loader();

20. logo.load(new URLRequest("l4cd.png"));

21. addChild(logo);

22.

23. var style:TextFormat = new TextFormat(null,null,0xFFFFFF,"center");

24. txt = new TextField();

25. txt.defaultTextFormat = style;

26. txt.width = 200;

27. txt.selectable = false;

28. txt.height = 20;

29. addChild(txt);

30.

31. super();

32. }

33. //最重要的代码就在这里..重写preloader,让swf执行加载的时候~进行你希望的操作~

34. override public function set preloader(value:Sprite):void{

35. _preloader = value

36. //四个侦听~分别是 加载进度 / 加载完毕 / 初始化进度 / 初始化完毕

37. _preloader.addEventListener(ProgressEvent.PROGRESS,load_progress);

38. _preloader.addEventListener(Event.COMPLETE,load_complete);

39. _preloader.addEventListener(FlexEvent.INIT_PROGRESS,init_progress);

40. _preloader.addEventListener(FlexEvent.INIT_COMPLETE,init_complete);

41.

42. stage.addEventListener(Event.RESIZE,resize)

43. resize(null);

44. }

45. private function remove():void{

46. _preloader.removeEventListener(ProgressEvent.PROGRESS,load_progress);

47. _preloader.removeEventListener(Event.COMPLETE,load_complete);

48. _preloader.removeEventListener(FlexEvent.INIT_PROGRESS,init_progress);

49. _preloader.removeEventListener(FlexEvent.INIT_COMPLETE,init_complete);

50. stage.removeEventListener(Event.RESIZE,resize)

51. }

52. private function resize(e:Event):void{

53. logo.x = (stage.stageWidth - 40)/2;

54. logo.y = (stage.stageHeight - 80)/2;

55. txt.x = (stage.stageWidth - 200)/2;

56. txt.y = logo.y + 40+5;

57.

58. graphics.clear();

59. graphics.beginFill(0x333333);

60. graphics.drawRect(0,0,stage.stageWidth,stage.stageHeight);

61. graphics.endFill();

62. }

63. private function load_progress(e:ProgressEvent):void{

64. txt.text = "正在加载..."+int(e.bytesLoaded/e.bytesTotal*100)+"%";

65. }

66. private function load_complete(e:Event):void{

67. txt.text = "加载完毕!"

68. }

69. private function init_progress(e:FlexEvent):void{

70. txt.text = "正在初始化..."

71. }

72. private function init_complete(e:FlexEvent):void{

73. txt.text = "初始化完毕!"

74. remove()

75. //最后这个地方需要dpe一个Event.COMPLETE事件..表示加载完毕让swf继续操作~

76. dispatchEvent(new Event(Event.COMPLETE))

77. }

78. }

79.}

自定义了加载类后..我们新建一个app测试一下..

查看源码打印关于此插件

1.<?xml version="1.0" encoding="utf-8"?>

2.<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"

3. preloader="LoadingExampleProgressBar"

4. backgroundGradientAlphas="[1.0,1.0]" backgroundGradientColors="[#333333,#333333]">

5.</mx:Application>

6.//请自行增加一“大”体积的东西..必放到网上去测试...

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读