flash开发中如何实现界面代码分离

“flash开发”发展到今天,大体上已经细分为二个分支:Flash 设计师 和 Flash程序员,然而设计师不懂代码,程序员不懂设计,如何把这二种角色有机结合起来,实现代码、界面分离?可能下面的办法对你有用:

 

actionscript3允许把外部swf直接用Embed标记嵌入到主类中(当然用UrlLoader动态加载也行),这意味着设计师们可以把一些常用的与代码无关的素材(比如按钮,图片,小动画),以他们喜欢的方式,用Flash CS工具设计好放到库中。

 

然后程序员把这类包含(皮肤)素材的swf嵌入到程序代码中,用代码创建相应的实例,这样程序员用flash builder/flashdevelop做开发,设计师用flash cs做设计,互不相干。

 

关键点:

设计师把素材放入到库中时,一定要指定类名,这样代码才能创建这些类的实例。

 

如上图所示,这里库中放了三种基本的素材(按钮,位图,电影夹),然后在代码中可以这样处理:

01 package 
02 {
03   
04     import flash.display.Sprite;
05     import flash.display.DisplayObject;
06     import flash.display.SimpleButton;
07     import flash.events.MouseEvent;
08     import flash.display.MovieClip;
09     import flash.display.BitmapData;
10     import flash.display.Bitmap;
11   
12   
13     public class Demo extends MovieClip
14     {
15         [Embed(source = "skin.swf",symbol = "ButtonPause")]
16         private var ButtonPause:Class;
17   
18         [Embed(source = "skin.swf",symbol = "ButtonPlay")]
19         private var ButtonPlay:Class;
20   
21         [Embed(source = "skin.swf",symbol = "LogoImage")]
22         private var LogoImage:Class;
23   
24         [Embed(source = "skin.swf",symbol = "TestMovie")]
25         private var TestMovie:Class;
26   
27   
28         public function Demo()
29         {
30             init();
31         }
32   
33         private function init():void
34         {
35             var btnTest:SimpleButton = new ButtonPause() as SimpleButton;
36             trace(btnTest,btnTest is SimpleButton);//Demo_ButtonPause0,true
37             addChild(btnTest);
38             btnTest.x = btnTest.y = 50;
39             btnTest.addEventListener(MouseEvent.CLICK,btnTestClick);
40   
41             var btnTest2:SimpleButton = new ButtonPlay() as SimpleButton;
42             trace(btnTest2);//Demo_ButtonPlay1
43             addChild(btnTest2);
44             btnTest2.y = 50;
45             btnTest2.x = 100;
46             btnTest2.addEventListener(MouseEvent.CLICK,btnTest2Click);
47   
48   
49             var bmd:Bitmap = new LogoImage() as Bitmap;
50             trace(bmd);//Demo_LogoImage2
51             addChild(bmd);
52             bmd.x = bmd.y = 200;
53   
54             var testMovie:MovieClip = new TestMovie() as MovieClip;
55             addChild(testMovie);
56             testMovie.x = testMovie.y = 180;
57             trace(testMovie);//Demo_TestMovie3
58   
59         }
60   
61         private function btnTestClick(e:MouseEvent):void
62         {
63             trace("btnTest 被点击了!");
64         }
65   
66         private function btnTest2Click(e:MouseEvent):void
67         {
68             trace("btnTest2 被点击了!");
69         }
70     }
71   
72 }
作者:菩提树下的杨过
出处:http://yjmyzz.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
posted @ 2010-10-28 18:47  rob_2010  阅读(270)  评论(0编辑  收藏  举报