微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Weather Report

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
    <mx:Panel title="Weather Report"  horizontalCenter="-56" verticalCenter="-27" id="myPanel" width="600" height="450">
    <mx:TextInput id="cityname" text="大连" fontSize="12"/>
    <mx:Button click="webService.getWeatherbyCityName(cityname.text)" icon="@Embed('image/r_t1.gif')" />
    <!--<mx:TextArea id="myWeatherReport" height="450" editable="false" fontSize="12" backgroundColor="#ffd7ff" color="#0000ff" width="600" />     -->
    <mx:Panel title="Rusult" width="100%" height="320">
    <mx:VBox id="vBox" fontSize="12">
    </mx:VBox>
    </mx:Panel>
    </mx:Panel>
    <mx:WebService id="webService" wsdl="http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl"
     showBusyCursor="true" result="onLoad(event)" fault="faultHandler(event)" />
    <mx:Style>
    ToolTip {
        fontFamily: "Arial";
        fontSize: 14;
        /*fontStyle: "italic";*/
        color: #0000ff;
        backgroundColor: #ffd7ff;
    }   
      </mx:Style>
    <mx:Script>
        <![CDATA[
          import mx.collections.ArrayCollection;
          import mx.utils.ArrayUtil;
          import mx.controls.*;
          import mx.rpc.events.ResultEvent;
          import mx.rpc.events.FaultEvent;
          import mx.core.UIComponent;
          import flash.utils.getDeFinitionByName;

          private function onLoad(event:ResultEvent):void{              
              vBox.removeAllChildren();
            //Alert.show(event.result.toString(),"WebService Results");
            var weatherInfo:ArrayCollection = (event.result) as ArrayCollection;
            for(var i:int=0;i <weatherInfo.length;i++){
                if(weatherInfo[i].toString().lastIndexOf(".gif")==1){
                    var imgcls:Class = getDeFinitionByName("mx.controls.Image") as Class;
                    var imginstance:UIComponent = new imgcls();
                    Image(imginstance).source= "image/"+weatherInfo[i];
                    vBox.addChild(imginstance);
                }else {
                    var cls:Class = getDeFinitionByName("mx.controls.Label") as Class;
                    var instance:UIComponent = new cls();
                    Label(instance).text = weatherInfo[i];
                    Label(instance).width = 540;
                    ToolTip.maxWidth = 800;//设置Label.ToolTip最大宽度                   
                    if(Label(instance).text.length>500) {
                        Label(instance).addEventListener(ToolTipEvent.TOOL_TIP_CREATE,function (event:ToolTipEvent):void{createtoolTip(event,Label(instance).text)});//调用自定义ToolTip                   
                    }
                    vBox.addChild(instance);
                    //Label(instance).truncatetoFit = false;    
                }
                  //myWeatherReport.text+=weatherInfo[i]+"/n";    
            }          
          }
          private function faultHandler(event:FaultEvent):void{
            Alert.show(event.fault.toString(),"WebService Error");
          }
          
          import mx.events.ToolTipEvent;          
          //create user-defined ToolTip
          private function createtoolTip(e:ToolTipEvent,arg:String):void
          {
            var tip:MyToolTip = new MyToolTip();            
            tip.text=arg;
            e.toolTip = tip;
          }
          //ToolTip position
          private function positionToolTip(e:ToolTipEvent):void
          {
            e.toolTip.x = mouseX + 10;
            e.toolTip.y = mouseY + 20;            
          }
        ]]>
    </mx:Script>
</mx:Application>
====================自定义ToolTip组件"MyToolTip.mxml"=======================

<?xml version="1.0" encoding="utf-8"?> <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" implements="mx.core.IToolTip"      width="800" height="100%" backgroundColor="#ffd7ff" borderStyle="solid" cornerRadius="5">  <mx:Script>   <![CDATA[    [Bindable]    private var _text:String;       public function get text():String    {     return this._text;    }       public function set text(value:String):void    {     this._text = value;    }   ]]>  </mx:Script>  <mx:Text text="{this._text}" color="#0000ff" fontSize="14" textAlign="left" width="798"/> </mx:Canvas>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐