Flex仿照游戏中的使用道具
Flex模仿游戏中的使用道具
编译器:Adobe Flash Builder 4
有三种道具:闪电(light)、下雨(rain)、zhadan(bomb)
道具弹出的是一个 flash 动画 (*.swf),flash动画弹出后要求覆盖整个页面.
代码:flashTimer.mxml
<fx:Script> 这个标签,在不同的 Flex 版本中有所不同,Flex 3 中的是 <mx:Script>
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" creationComplete="init()"> <fx:Script> <![CDATA[ import mx.controls.Alert; import mx.controls.SWFLoader; import flash.utils.Timer; // 闪电计时器 private var lightTimer:Timer; // 下雨计时器 private var rainTimer:Timer; // zhadan计时器 private var bombTimer:Timer; /**时限(s)*/ // 闪电,循环显示10次 private var lightTimeTotal:int = 10; // 下雨,循环显示5次 private var rainTimeTotal:int = 5; // zhadan,循环显示3次 private var bombTimeTotal:int = 3; // 初始化,一进入页面就执行此方法 private function init():void { // 每1000ms执行一次 lightTimer = new Timer(1000,0); rainTimer = new Timer(1000, 0); bombTimer = new Timer(1000, 0); lightTimer.addEventListener(TimerEvent.TIMER, lightTime); rainTimer.addEventListener(TimerEvent.TIMER, rainTime); bombTimer.addEventListener(TimerEvent.TIMER, bombTime); } // 闪电 private function lightTime(evt:TimerEvent):void { if (lightTimeTotal >= 0) { lightLoader.source = "flash/闪电10秒.swf"; lightTimeTotal--; if (lightTimeTotal == 0) { lightLoader.source = ""; //Alert.show("light finished"); lightTimer.stop(); } } else { lightLoader.source = ""; lightTimer.stop(); } } // 下雨 private function rainTime(evt:TimerEvent):void { if (rainTimeTotal >= 0){ rainLoader.source = "flash/下雨5秒.swf"; rainTimeTotal--; if (rainTimeTotal == 0){ rainLoader.source = ""; //Alert.show("rain finished"); rainTimer.stop(); } } else { rainLoader.source = ""; rainTimer.stop(); } } // zhadan private function bombTime(evt:TimerEvent):void { if (bombTimeTotal >= 0){ bombLoader.source = "flash/zhadan3秒.swf"; bombTimeTotal--; if (bombTimeTotal == 0) { bombLoader.source = ""; //Alert.show("bomb finished"); bombTimer.stop(); } } else { bombLoader.source = ""; bombTimer.stop(); } } // 点击闪电按钮 private function lightStart():void { lightTimer.start(); } // 点击下雨按钮 private function rainStart():void { rainTimer.start(); } // 点击zhadan按钮 private function bombStart():void { bombTimer.start(); } ]]> </fx:Script> <s:Button x="105" y="204" label="闪电" id="shandianBtn" click="lightStart()"/> <s:Button x="247" y="204" label="下雨" id="rainBtn" click="rainStart()"/> <s:Button x="361" y="204" label="zhadan" id="bombBtn" click="bombStart()"/> <mx:SWFLoader id="lightLoader" width="656" height="326" x="41" y="10"/> <mx:SWFLoader id="rainLoader" width="656" height="326" x="41" y="10"/> <mx:SWFLoader id="bombLoader" width="656" height="326" x="41" y="10"/> <s:TextInput x="105" y="276" width="326" height="32"/> </s:Application>
工程结构:
整个工程代码详见附件:alertflash.rar