需求其实很简单,就是实施反映当前哪些房间住人,有几个人

主要客户希望用直观的平面方式展示出来,所以综合考虑后用flash来实现

也是第二次用as3这东东写应用,哈哈

先看效果图:

因为楼层和布局不会变所以没有做成可配置的

下面是代码:

场景中第一帧上面的代码

stop();
//加载需要的包
import com.greensock.*;
import com.greensock.easing.*;
import flash.text.TextFormat;
import fl.managers.StyleManager;
import flash.events.MouseEvent;
import flash.events.Event;
import flash.display.MovieClip;//设置字体样式
var style:TextFormat = new TextFormat();
style.size = 24;
style.color = 0x000000;
StyleManager.setStyle("textFormat",style);//画布大小;
var sw:Number = stage.stageWidth;
var sh:Number = stage.stageHeight;//创建房子显示对象
var houses:houseList=new houseList();
addChild(houses);//选项显示对象
var msg:showMsg = new showMsg();
addChild(msg);
msg.x=(stage.stageWidth-msg.width)/2;
msg.y=(msg.height*-1)-20;
msg.ey=Number((stage.stageHeight-msg.height)/2);
msg.alpha = 0;//楼层容器
var floors:floors_mc = new floors_mc();
this.addChild(floors);
floors.alpha=0;
floors.visible=false;

house类的代码

package
{import flash.display.MovieClip;import flash.events.Event;import flash.events.MouseEvent;import com.greensock.*;import com.greensock.easing.*;import flash.text.TextFormat;import fl.managers.StyleManager;import fl.data.DataProvider;/*** ...* @author purecolor@foxmail.com*/public class house extends MovieClip{private var _floors:DataProvider;private var _name:String;private var _houseName:String;public function house() {super();_floors = new DataProvider();_name = ((this.toString()).split(" "))[1].replace("\]","");init();}private function init():void{switch(_name) {case("house_1"):_houseName = "一号楼";_floors.addItem( { label:"一层", data:"house_1_floor_1" } );_floors.addItem( { label:"二层", data:"house_1_floor_2" } );_floors.addItem( { label:"三层", data:"house_1_floor_3" } );_floors.addItem( { label:"四层", data:"house_1_floor_4" } );break;case("house_2"):_houseName = "二号楼";_floors.addItem( { label:"一层", data:"house_2_floor_1" } );_floors.addItem( { label:"二层", data:"house_2_floor_2" } );_floors.addItem( { label:"三层", data:"house_2_floor_3" } );break;case("house_3"):_houseName = "三号楼";_floors.addItem( { label:"一层", data:"house_3_floor_1" } );_floors.addItem( { label:"二层", data:"house_3_floor_2" } );break;case("house_4"):_houseName = "六号楼";_floors.addItem( { label:"一层", data:"house_4_floor_1" } );_floors.addItem( { label:"二层", data:"house_4_floor_2" } );break;case("house_5"):_houseName = "五号楼";_floors.addItem( { label:"一层", data:"house_5_floor_1" } );_floors.addItem( { label:"二层", data:"house_5_floor_2" } );break;}this.addEventListener(MouseEvent.MOUSE_OVER, handleOver);this.addEventListener(MouseEvent.MOUSE_OUT, handleOut);this.addEventListener(MouseEvent.CLICK, handleClick);}private function handleOver(e:MouseEvent):void {TweenMax.to(this, 1, {glowFilter:{color:0x9900ff, alpha:1, blurX:10, blurY:10, strength:2}});}private function handleOut(e:MouseEvent):void {TweenMax.to(this, 1, {glowFilter:{alpha:0}});}private function handleClick(e:MouseEvent):void{var root:MovieClip = MovieClip(root as MovieClip);var msg:MovieClip = root["msg"];var timeline:TimelineLite = new TimelineLite();timeline.append(new TweenMax(msg, 0.5, { y:msg.height*-1, alpha:0 , ease:Quad.easeInOut}));timeline.append(new TweenMax(msg, 0.5, { y:msg.ey, alpha:1 , ease:Quad.easeInOut} ));msg.nameTxt.text = _houseName;msg.msgList.clearSelection();msg.msgList.dataProvider = _floors;}}}

floors_mc类的代码

package
{import com.greensock.*;import com.greensock.easing.*;import fl.managers.StyleManager;import flash.events.Event;import flash.events.MouseEvent;import flash.display.MovieClip;import flash.utils.Timer;import flash.events.TimerEvent;/*** ...* @author purecolor@foxmail.com*/public class floors_mc extends MovieClip{private var __floorsClose:MovieClip;public function floors_mc() {super();//init();}private function init():void{__floorsClose = getChildByName("floors_close") as MovieClip;__floorsClose.addEventListener(MouseEvent.CLICK, handleCloseFloor);}private function handleCloseFloor(e:MouseEvent):void{TweenMax.to(this, 1, {alpha:0 , ease:Back.easeOut });var times:Timer = new Timer(500,1);times.addEventListener(TimerEvent.TIMER, setvf);times.start();}private function setvf(e:TimerEvent):void{if(this.numChildren>2) this.removeChild(this.getChildAt(2));this.visible = false;}public function showFloor(e:String):void{if(this.numChildren>2) this.removeChild(this.getChildAt(2));var _hid:String = e.split("_")[0];var _fid:String = e.split("_")[1];var floor_mc:MovieClip;var hf:String = "house_" + _hid + "_floor_" + _fid;switch(hf) {case("house_1_floor_1"):floor_mc = new house_1_floor_1;break;case("house_1_floor_2"):floor_mc = new house_1_floor_2;break;case("house_1_floor_3"):floor_mc = new house_1_floor_3;break;case("house_1_floor_4"):floor_mc = new house_1_floor_4;break;case("house_2_floor_1"):floor_mc = new house_2_floor_1;break;case("house_2_floor_2"):floor_mc = new house_2_floor_2;break;case("house_2_floor_3"):floor_mc = new house_2_floor_3;break;case("house_3_floor_1"):floor_mc = new house_3_floor_1;break;case("house_3_floor_2"):floor_mc = new house_3_floor_2;break;case("house_4_floor_1"):floor_mc = new house_4_floor_1;break;case("house_4_floor_2"):floor_mc = new house_4_floor_2;break;case("house_5_floor_1"):floor_mc = new house_5_floor_1;break;case("house_5_floor_2"):floor_mc = new house_5_floor_2;break;}this.addChild(floor_mc);floor_mc.y = 50;floor_mc.alpha = 0;TweenMax.to(floor_mc, 1, {alpha:1 , ease:Back.easeOut } );trace(this.numChildren);}}}

room类的代码

package
{import fl.controls.Label;import flash.display.MovieClip;import flash.display.Shape;import flash.display.Sprite;import flash.events.Event;import com.greensock.*;import com.greensock.easing.*;import flash.events.MouseEvent;import flash.geom.PerspectiveProjection;import flash.text.TextField;import flash.text.TextFieldAutoSize;import flash.text.TextFormat;/*** ...* @author purecolor@foxmail.com*/public class room extends MovieClip{private var _name:String;private var _item:XMLList;private var _house:String;public function room() {this.addEventListener(Event.ADDED_TO_STAGE, handleAdded);}private function handleAdded(e:Event):void{_name = (((this.toString()).split(" "))[1].replace("\]", "").split("_"))[1];var xmlData:XML = MovieClip(root as MovieClip)["xmlData"];_item = xmlData.house.floor.room.(@num  == _name );if (_item.@roomer > 0) {TweenMax.to(this, 1, {colorTransform:{tint:0xF22408, tintAmount:0.4}});}if (int(_name)<2100||int(_name)>3100) {for (var i:int = 0, len:int = _item.@roomer; i < len; i++) {var _per:per = new per;this.addChild(_per);_per.y = this.height / 2;_per.x = (this.width - 16 * len) / 2+16*i;}}if (_item.@roomer > 0) showName(_item);}private function showName(e:XMLList):void {var _shape:MovieClip = new MovieClip;var len:Number = e.children().length();var _h:Number = len * 20;var _tw:Number = 0;for (var i:int = 0; i < len; i++){var __i:Number = ((e.pre[i].@name).toString()).length * 14;_tw = (__i > _tw)?__i:_tw;}var __w:Number = (_tw > this.width)?(_tw - this.width) / 2:0;var _maxw:Number = (_tw > this.width)?_tw:this.width;var x:Number = (this.width - (this.width)) / 2-__w, y:Number = 0;var ud:Boolean = false;var _w:Number = this.width + __w * 2;if (this.y > this.parent.height/4) {y = this.height + 5;ud = true;}else {y = -_h - 5;ud = false;}if (len > 0) {_shape.graphics.lineStyle(1, 0x000000);_shape.graphics.beginFill(0xffffff);_shape.graphics.drawRoundRect(x, y, _w, _h, 6);if (ud) {//下_shape.graphics.moveTo(this.width/2-5, y);_shape.graphics.lineTo(this.width/2, y-5);_shape.graphics.lineTo(this.width/2+5, y);}else {//上_shape.graphics.moveTo(this.width/2-5, y+_h);_shape.graphics.lineTo(this.width/2, y+_h+5);_shape.graphics.lineTo(this.width/2+5, y+_h);}_shape.graphics.endFill();addChild(_shape);              var _nameLabel:TextField = new TextField();_shape.addChild(_nameLabel);_nameLabel.width = _maxw;_nameLabel.autoSize = TextFieldAutoSize.CENTER ;//_nameLabel.border = true;if(x<0) _nameLabel.x -= (Math.abs(x));trace(x);trace(_nameLabel.x);trace('---');for (var _i:int = 0; _i < len; _i++){_nameLabel.appendText(e.pre[_i].@name+"\n");}if (ud) {_nameLabel.y=y+(_h-_nameLabel.height)/2;}else {_nameLabel.y = y+(_h-_nameLabel.height)/2;}}}}}

showMsg类的代码

package
{import fl.controls.Label;import fl.controls.List;import flash.display.MovieClip;import com.greensock.*;import com.greensock.easing.*;import flash.events.Event;import flash.events.MouseEvent;import flash.text.TextFormat;import fl.managers.StyleManager;/*** ...* @author purecolor@foxmail.com*/public class showMsg extends MovieClip{private var __btnClose:MovieClip;private var __msgList:List;private var __nameTxt:Label;public var ey:Number;public function showMsg() {super();__btnClose = getChildByName("btnClose") as MovieClip;__msgList = getChildByName("msgList") as List;__nameTxt = getChildByName("nameTxt") as Label;__msgList.rowHeight = 36;__btnClose.addEventListener(MouseEvent.CLICK, handleClick);__msgList.addEventListener(Event.CHANGE, showData);}function handleClick(e:MouseEvent):void{TweenMax.to(this, 0.5, { y:this.height*-1, alpha:0 , ease:Back.easeOut});}function showData(e:Event):void{var tid:String=e.target.selectedItem.data;TweenMax.to(this, 0.5, { y:this.height * -1, alpha:0 , ease:Back.easeOut } );var root:MovieClip = MovieClip(root as MovieClip);var floor_mc:MovieClip;switch(tid) {case("house_1_floor_1"):floor_mc = new house_1_floor_1;break;case("house_1_floor_2"):floor_mc = new house_1_floor_2;break;case("house_1_floor_3"):floor_mc = new house_1_floor_3;break;case("house_1_floor_4"):floor_mc = new house_1_floor_4;break;case("house_2_floor_1"):floor_mc = new house_2_floor_1;break;case("house_2_floor_2"):floor_mc = new house_2_floor_2;break;case("house_2_floor_3"):floor_mc = new house_2_floor_3;break;case("house_3_floor_1"):floor_mc = new house_3_floor_1;break;case("house_3_floor_2"):floor_mc = new house_3_floor_2;break;case("house_4_floor_1"):floor_mc = new house_4_floor_1;break;case("house_4_floor_2"):floor_mc = new house_4_floor_2;break;case("house_5_floor_1"):floor_mc = new house_5_floor_1;break;case("house_5_floor_2"):floor_mc = new house_5_floor_2;break;}root["floors"].visible = true;TweenMax.to(root["floors"], 2, {alpha:1 , ease:Back.easeOut } );root["floors"].addChild(floor_mc);floor_mc.y = 50;//trace(root["floors"].numChildren);//trace(root["floors"]+" : "+floor_mc);}}}

转载于:https://www.cnblogs.com/purecolor/archive/2011/07/19/2110148.html

flash的一个展示效果相关推荐

  1. 一个挺酷的flash图片展示效果

    为了做一个视频列表,在网上找了一个挺酷的flash图片展示效果,源代码的组件名称为DisplayShelf,有另外一个相同效果的组件叫CoverFlow. 原来的例子并没有实现单击当前图片的事件,为了 ...

  2. 做出的一个图片的自动展示效果(JS版本)

    在国外的网站看到一个很不错的图片自动展示效果,于是就自己做了起来,在查看代码时发现是一个JavaScript爱好者自己写了一个库文件来调用,确实看的不太懂,但效果是做出来了,页面的调用代码只需引用固定 ...

  3. 画一个椭圆形带扩散效果波纹展示效果

    需求描述 画一个椭圆形带扩散效果波纹展示效果 问题解决 <div class="server"><div class="s1">< ...

  4. css 风琴,玩一下纯 CSS 折腾的一个叫什么手拉风琴的图片展示效果

    原标题:玩一下纯 CSS 折腾的一个叫什么手拉风琴的图片展示效果 好久没更新的公众号终于更新了,但没有太多内容,主要是也不知道写什么,更关键是已经很久没有写 CSS 的东西了,中午没吃到鸡,就一边观战 ...

  5. 使用HTML5和jQuery插件Quicksand实现一个超酷的星际争霸2兵种分类展示效果

    为什么80%的码农都做不了架构师?>>>    日期:2011/11/01 来源:GBin1.com 因为本人是星际争霸系列游戏的忠实拥簇,所以在今天的jQuery教程中,我们将使用 ...

  6. SlideView 图片滑动(扩展/收缩)展示效果

    滑动展示效果主要用在图片或信息的滑动展示,也可以设置一下做成简单的口风琴(Accordion)效果. 这个其实就是以前写的图片滑动展示效果的改进版,那是我第一篇比较受关注的文章,是时候整理一下了. 有 ...

  7. 《JavaScript 实战》:实现图片幻滑动展示效果

    滑动展示效果主要用在图片或信息的滑动展示,也可以设置一下做成简单的口风琴(Accordion)效果.这个其实就是以前写的图片滑动展示效果的改进版,那是我第一篇比较受关注的文章,是时候整理一下了. 有如 ...

  8. JavaScript 图片滑动展示效果javascript

    javascript 图片滑动展示效果 更新版本:slideview 图片滑动(扩展/收缩)展示效果 看到jquery实例:图片展示效果后,我也想拿来试试,但我不太喜欢用框架,所以自己做了个. 其中的 ...

  9. jQuery实例:图片展示效果

    原文地址为: jQuery实例:图片展示效果 开始之前,我就喜欢先看一下效果: 张娜拉,韩国的 My Digital Story 不知道是什么图来的 我的Logo,Studio拼错了都不知道,汗一个. ...

最新文章

  1. ubantu中的mysql命令
  2. 用户控件和服务器控件的数据绑定
  3. 面板panel与窗口frame的区别
  4. Matlab实用程序--图形应用-交互式图形
  5. 使用Boost.Compute类在GPU上设置和运行简单的矢量加法内核
  6. 数组——两个有序数组的合并
  7. Yeslab现任明教教主ISE课程前七部分免费发布
  8. groupby索引有效吗_SQL IN 一定走索引吗?
  9. lda数学八卦_【技术博客】文本挖掘之LDA主题模型
  10. Python pickle库
  11. 编译C#和C++共存的解决方案的小结
  12. Java多线程详解(基本概念)
  13. 编写xml文件不当时会出现R文件找不到情况
  14. 全球首个航天大模型问世,文心秒补《富春山居图》,这是百度普惠AI的恒心...
  15. Unity 提取资源 Disunity、Unity Studio
  16. win10 为了对电脑进行保护,已经阻止此应用 解决方法 亲测可用
  17. RNA-Seq HISAT+ HTSeq + DESeq2流程 及测序深度和质控问题讨论
  18. postgresql中recovery.conf分析
  19. Codeforces Round #727 (Div. 2)
  20. 山水文园集团:向着更美好 稳步前行

热门文章

  1. 测试韩国真假唇釉软件,完美日记丝绒唇釉真假对比
  2. 在 Node 的帮助下,横跨多平台的 JavaScript 已经赢了
  3. TTEFS-基于LayerFsd的文档透明加密SDK
  4. html制作十字架,使用重构的方式制作出一个红色十字架
  5. uniapp使用安卓原生插件(包含插件带第三方jar)
  6. 某社区在线人数爬虫,以及群发的源码分享
  7. rpm详解——原理,命令详细讲解
  8. rpm -Uvh 执行顺序
  9. 苹果经典提示音_火遍全网的iPhone提示音,你知道怎么设置吗?
  10. 开发和常用工具推荐清单 转载