ARCGIS viewer入门(9)flex viewer定制弹出窗口

本文档介绍了如何使用XML和Flex组件自定义ARCGIS Viewer的弹出窗口,包括设置过滤器效果、按钮标签、文本区域尺寸,并提供了显示网页内容的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(1)基本的弹出窗口 

          <?xml version="1.0" encoding="utf-8"?>


<!---
    Pop-up component used to render HTML text.
-->
<s:BorderContainer xmlns:fx="http://ns.adobe.com/mxml/2009"
                   xmlns:s="library://ns.adobe.com/flex/spark"
                   xmlns:mx="library://ns.adobe.com/flex/mx"
  xmlns:iframe="http://code.google.com/p/flex-iframe/"
                   width="100%" height="100%"
                   cornerRadius="10"
                   creationComplete="htmlPopup_creationCompleteHandler(event)">
    <s:filters>
        <s:GlowFilter alpha="0.8"
                      blurX="50"
                      blurY="50"
                      color="0xFFFFFF"
                      quality="{BitmapFilterQuality.MEDIUM}"
                      strength="1"/>
    </s:filters>
    <fx:Script>
        <![CDATA[
            import flash.filters.BitmapFilterQuality;


            import flashx.textLayout.conversion.TextConverter;


            import mx.core.FlexGlobals;
            import mx.events.CloseEvent;
            import mx.events.FlexEvent;


           
            [Bindable]
            public var btnLabel:String = "OK";

[Bindable]
public var source:String = "www.baidu.com";


            [Bindable]
            public var txtareaWidth:Number = 500;


            [Bindable]
            public var txtareaHeight:Number = 500;




            public static function show(content:String = "",
                                        btnLabel:String = "OK",
                                        width:Number = 500,
                                        height:Number = 500,
                                        modal:Boolean = true,
                                        closeHandler:Function = null):FramePopup
            {
                var alert:FramePopup = new FramePopup();


                var parent:Sprite = Sprite(FlexGlobals.topLevelApplication);


                if (closeHandler != null)
                {
                    alert.addEventListener(CloseEvent.CLOSE, closeHandler);
                }


                alert.source = content;
                alert.btnLabel = btnLabel;
                alert.txtareaWidth = width;
                alert.txtareaHeight = height;
                FramePopupManager.addPopUp(alert, parent, modal);
                return alert;
            }


            private function close(event:Event):void
            {
FramePopupManager.removePopUp(this);
                dispatchEvent(new CloseEvent(CloseEvent.CLOSE));
            }


            protected function htmlPopup_creationCompleteHandler(event:FlexEvent):void
            {
                setStyle("backgroundColor", getStyle("contentBackgroundColor"));
                setStyle("backgroundAlpha", FlexGlobals.topLevelApplication.getStyle("backgroundAlpha"));
            }
        ]]>
    </fx:Script>
    <!-- doc reference http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flashx/textLayout/conversion/TextConverter.html#TEXT_FIELD_HTML_FORMAT -->
    <s:RectangularDropShadow id="dropShadow"
                             left="0" right="0" top="0" bottom="0"
                             alpha="0.32"
                             angle="90"
                             blRadius="10"
                             blurX="20"
                             blurY="20"
                             brRadius="10"
                             distance="25"/>
    <s:VGroup horizontalAlign="center" paddingBottom="10">
        <s:Button click="close(event)" label="{btnLabel}"/>
 <iframe:IFrame width="{txtareaWidth}" height="{txtareaHeight}" source="{source}"  >
</iframe:IFrame> 
 
    </s:VGroup>
</s:BorderContainer>


---------------------------------------------------------------------------------------------

package com.esri.viewer.components
{


import flash.display.DisplayObject;
import flash.display.DisplayObjectContainer;


import mx.core.IFlexDisplayObject;
import mx.managers.PopUpManager;


/**
 * Manager class used to control HTML pop-up component location and content.
 */
public class FramePopupManager
{
    public static function addPopUp(window:IFlexDisplayObject,
                                    parent:DisplayObject,
                                    modal:Boolean = false,
                                    childList:String = null):void
    {
        PopUpManager.addPopUp(window, parent, modal, childList);
        showSplash(window, parent as DisplayObjectContainer);
    }


    private static function showSplash(window:IFlexDisplayObject, parent:DisplayObjectContainer):void
    {
        var x:Number =  parent.width - window.width-32;
        var y:Number = (parent.height - window.height) / 2;


        window.move(Math.ceil(x), Math.ceil(y));
    }


    public static function removePopUp(window:IFlexDisplayObject):void
    {
        PopUpManager.removePopUp(window);
    }
}


}


调用:FramePopup.show("http://www.baidu.com", "ok", 200, 200);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值