1

我是一名 GIS 分析师,被调到分析师程序员职位。这对我来说是一个艰难的过渡,因为我没有太多的编程背景,但我被投入其中。

我正在开发一个jsp 页面内的Flex 应用程序。本质上,它是一个包含图像和文本的 3x2 网格。我要做的是在此页面中有多个 titleWindow 引用,以便在单击图像时打开一个 titleWindow。(如果有人有更好的想法,特别是如果它与悬停有关,我对此非常开放!)目前我正在为一张图像工作。但是,当我尝试添加第二个功能时,它会出错。“错误 1021:重复的函数定义” 下面是调用 titleWindow 的主页的完整代码。下面的代码给出了错误 1021。

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

    <![CDATA[
        import flash.geom.Point;

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

        import windows.SimplePopupWindow;   

        private var point1:Point = new Point();

        private function showWindow():void {
            var login:SimpleTitleWindowExample=SimpleTitleWindowExample(PopUpManager.createPopUp( this, SimpleTitleWindowExample , true));


            point1.x=131;
            point1.y=119;                
        point1=roadStatus.localToGlobal(point1);            
        }

        private var point2:Point = new Point();

        private function showWindow():void {
            var login:SimpleTitleWindowExampleFlood=SimpleTitleWindowExampleFlood(PopUpManager.createPopUp( this, SimpleTitleWindowExampleFlood , true));

            point2.x=289;
            point2.y=119;                
            point2=floodplain.localToGlobal(point2); 

        }           
    ]]>

</fx:Script>
<fx:Declarations>
    <!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<s:BorderContainer x="10" y="0" width="750" height="600" backgroundColor="#BBB082" backgroundAlpha="1.0" cornerRadius="20" borderColor="#E8DBA7">
    <s:Panel x="10" y="10" width="728" height="578" cornerRadius="20" chromeColor="#983D3A" borderColor="#F1EFE7" backgroundColor="#BBB082">
        <mx:Image x="131" y="119" width="150" height="115" source="file://GIS Map Portal/images/Map Images/SJCRoadStatus2_small.jpg" id="roadStatus" click="showWindow();"/>
        <mx:Image x="289" y="119" width="150" height="115" source="file://GIS Map Portal/images/Map Images/SJCRoadStatus_small.jpg" id="floodplain" click="showWindow();"/>
        <mx:Image x="447" y="119" width="150" height="115" source="file://GIS Map Portal/images/Map Images/SJCRoadStatus2_small.jpg"/>
        <s:Label x="131" y="242" text="SJC Road Status"/>
        <s:Label x="289" y="242" text="SJC Floodplain"/>
        <s:Label x="447" y="242" text="Assessor's Parcels"/>
        <mx:Image x="131" y="262" width="150" height="115" source="file://GIS Map Portal/images/Map Images/SJCRoadStatus_small.jpg"/>
        <mx:Image x="289" y="262" width="149" height="115" source="file://GIS Map Portal/images/Map Images/SJCRoadStatus2_small.jpg"/>
        <mx:Image x="446" y="262" width="151" height="115" source="file://GIS Map Portal/images/Map Images/SJCRoadStatus_small.jpg"/>
        <s:Label x="131" y="385" text="Label"/>
        <s:Label x="289" y="385" text="Label"/>
        <s:Label x="446" y="385" text="Label"/>
        <s:Label x="229" y="24" text="San Juan County Web Maps" fontFamily="Calvin and Hobbes" fontSize="25"/>

    </s:Panel>
</s:BorderContainer>

下面是titleWindow代码。到目前为止,此代码有效!

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

<mx:Script>
    <![CDATA[       
        import mx.managers.PopUpManager;
        import mx.controls.Text;

        // A reference to the TextInput control in which to put the result.
        public var loginName:Text;

        // Event handler for the OK button.
        private function returnName():void {
            //loginName.text="Name entered: " + userName.text; 
            PopUpManager.removePopUp(this);
        }
    ]]>
</mx:Script>

<mx:HBox width="323" height="147" borderColor="#E8DBA7" dropShadowVisible="true">
    <mx:Text text="The San Juan County GIS Department maintains aninteractive web map dedicated for researching county roads, but also includes city limits, lakes and rivers, and other geographic data.&#xd;" width="319" height="76" textAlign="center" color="#FFFFFF"/>
</mx:HBox>

<mx:HBox>
    <mx:Button label="Go" click="navigateToURL(new URLRequest(''), 'quote')"/>
    <mx:Button label="Back" click="PopUpManager.removePopUp(this);"/>
</mx:HBox>

问题:我需要在上面更改哪些代码才能添加多个 titleWindow(最多 6 个),或者我可以使用哪些代码进行悬停以打开“窗口”或工具提示?

如果有人有任何想法或可以指导我,那就太好了。我很感激!

4

1 回答 1

1

听起来你刚刚被扔进了深渊。一般来说,您可以打开的标题窗口的数量没有限制,PopUpManager 类处理您告诉它作为弹出窗口打开的任何 UIComponent,并且管理器上的 .createPopUp 或 addPopUp 静态方法的参数之一将采用modal 参数,它指定是否应该阻止用户交互(通过模糊应用程序来指示)或者是否应该只显示窗口。这个错误似乎是由于您对 TitleWindow(SimpleTitleWindowExample)的扩展而引起的,您可以发布该代码吗?此外,作为该主题的起点,请查看以下文档:

一般弹性:

http://www.adobe.com/devnet/flex/videotraining.html

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/index.html

^ 请注意屏幕顶部的运行时和产品选择选项,根据您正在构建的 SDK 进行选择(或根据功能选择 SDK)

PopUpManager: http ://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/managers/PopUpManager.html#createPopUp () http://help.adobe.com/en_US/FlashPlatform/reference/actionscript /3/mx/managers/PopUpManager.html#addPopUp () http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/managers/PopUpManager.html#removePopUp ()

工具提示: http ://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/managers/ToolTipManager.html#createToolTip () http://help.adobe.com/en_US/FlashPlatform/reference/actionscript /3/mx/managers/ToolTipManager.html#destroyToolTip ()

如果您仍然遇到问题,请务必发布自定义 TitleWindow 的代码,以及您使用的 SDK 版本,以便我可以尝试复制。

编辑:好吧,看到你的代码的其余部分清除它......你不能有两个具有相同确切名称的函数,所以在你的代码中你有 showWindow 作为一个被声明两次的函数(我不确定这是如何通过编译的,我原以为编译器会足够聪明,可以在运行时之前看到这个错误,但事实就是这样)。将另一个 showWindow 更改为类似于 showOtherWindow 或类似的东西。看起来你也有过程编程背景(C 或其他非 OOP 语言)明白了,基本上你'

这可能会有所帮助: http: //www.codeproject.com/KB/architecture/OOP_Concepts_and_manymore.aspx

就技能而言,我基本上处于另一端,我在德保罗大学接受过计算机科学的正规教育,但在我目前的职位上,我正在做很多谷歌地图的闪存代码,所以我发现自己越来越多需要了解基准和其他 GIS 专业信息(只是觉得在同一个十字路口找到某人但走另一条路很有趣:)。

于 2011-03-30T17:18:47.243 回答