现在的位置: 首页 > 综合 > 正文

如何让flex中组件能够被拖动

2017年11月30日 ⁄ 综合 ⁄ 共 2464字 ⁄ 字号 评论关闭

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initApp()">
<mx:states>
<mx:State name="index">
<mx:RemoveChild target="{pannel1}"/>
<mx:AddChild position="lastChild">
<mx:Label text="欢迎来到主页" fontFamily="Arial" fontSize="36" horizontalCenter="0" verticalCenter="0" fontWeight="bold"/>
</mx:AddChild>
</mx:State>
</mx:states>
<mx:Script>
<![CDATA[
import mx.controls.Alert;

private function initApp():void{
lblCheckCode.text = GenerateCheckCode();
}
private function loginHandle():void{
if(txtUsername.text == ""||txtPassword.text == ""){
Alert.show('用户名和密码不得为空');
}
else{
if(txtUsername.text == "Admin" && txtPassword.text == "123456" && txtCheckCode.text.toLocaleLowerCase() == lblCheckCode.text.toLocaleLowerCase()){
//Alert.show("登录成功,欢迎回来");
currentState = "index";
}
else{
if(txtCheckCode.text.toLocaleLowerCase() != lblCheckCode.text.toLocaleLowerCase()){
Alert.show("验证码输入错误");
lblCheckCode.text = GenerateCheckCode();
}
else{
Alert.show("用户名或密码错误");
}
}
}
}
private function resetHandle():void{
txtUsername.text = "";
txtPassword.text = "";
}
private function GenerateCheckCode():String{
var ran:Number;
var number:Number;
var code:String;
var checkCode:String = "";

for(var i:int=0; i<4; i++){
ran = Math.random();
number = Math.round(ran * 10000);
if(number % 2 == 0){
code = String.fromCharCode(48 + number % 10);
}
else{
code = String.fromCharCode(65 + number % 26);
}
checkCode += code;
}
return checkCode;
}
private var oldX,oldY:Number;
       private function onMouseMove(event:MouseEvent):void{
           if(event.buttonDown){
               var x:Number = event.stageX - oldX;
               var y:Number = event.stageY - oldY;
               oldX = event.stageX;
               oldY = event.stageY;                  
               pannel1.move(pannel1.x+x,pannel1.y+y);      
           }
       }
       
       private function onMouseDown(event:MouseEvent):void{
           oldX = event.stageX;
           oldY = event.stageY;
       }
]]>
</mx:Script>

<mx:Panel width="250"  height="200" layout="absolute" id="pannel1"
    title="用户登录" fontFamily="Georgia" fontSize="12"
    mouseMove="onMouseMove(event)"
    mouseDown="onMouseDown(event)"
x="254.5" y="83" >
<mx:Label x="10" y="23" text="用户名"/>
<mx:Label x="10" y="56" text="密码"/>
<mx:TextInput id="txtUsername" horizontalCenter="24" verticalCenter="-45"/>
<mx:TextInput x="59" y="54" id="txtPassword"/>
<mx:Button x="46" y="122" label="登录" id="btnLogin" click="loginHandle()"/>
<mx:Button x="127" y="122" label="重置" id="btnReset" click="resetHandle()"/>
<mx:Label x="10" y="89" text="验证码"/>
<mx:TextInput x="59" y="87" width="73" id="txtCheckCode"/>
<mx:Label x="144" y="91" id="lblCheckCode"/>
</mx:Panel>

</mx:Application>

抱歉!评论已关闭.