2011-03-30 34 views
1

我是GIS分析師,被轉移到Analyst Programmer職位。對我來說這是一個艱難的過渡,因爲我沒有太多的編程背景,但我被拋棄了。Flex應用程序中的多個titleWindow

我正在處理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個),或者什麼碼我可以使用懸停來打開「窗口」或工具提示嗎?

如果任何人有任何想法或可以指導我,那將是偉大的。我很感激!

回答

1

聽起來就像剛剛被拋出深處。一般來說,對可以打開的標題窗口的數量沒有限制,PopUpManager類可以處理您告訴它以彈出形式打開的任何UIComponent,並且管理器上的.createPopUp或addPopUp靜態方法的其中一個參數將採用模式參數,指定是否應阻止用戶交互(通過模糊應用程序指示),還是隻顯示窗口。看起來這個錯誤是源於TitleWindow的擴展(SimpleTitleWindowExample),你可以發佈該代碼。

一般的Flex:關於這個專題看看下面的文檔還爲出發點

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語言)面向對象的編程需要一點時間來讓你的頭腦得到解決,但是一旦你解決了現實世界的問題,它就會變得更加有意義理解它,基本上你使用方法調用在對象之間設置描述和發送消息,當你定義一個類時,通過AS或MXML定義方法(方法/屬性定義的順序在功能上並不重要,事情是仍然是程序性的,就像在方法中一步一步地執行,但方法聲明或屬性聲明的順序沒有影響)。

這可能是有益的: http://www.codeproject.com/KB/architecture/OOP_Concepts_and_manymore.aspx

我基本上是在光譜的一些技能方面的另一端,我有一個正規教育從德保羅大學的計算機科學,但在我目前的職位是做一個很多谷歌地圖閃存代碼,所以我發現自己越來越需要了解基準和其他GIS專業信息(只是覺得在同一個交叉路口找到某個人,但以另一種方式:)是有趣的。

+0

謝謝,我會通過這些鏈接。我更新了原始文章中的代碼以包含所有內容。再次感謝! – Evan 2011-03-30 21:05:58

+0

真棒謝謝!我只是認爲showWindow函數是成立的,所以我甚至沒有嘗試改變它。我有很多要學習的!我發現編碼和基準很相似,在那裏有很多,你需要找到一個並堅持下去。我使用ESRI軟件,因此我不會太惹惹Google地圖。謝謝你讓我直立,我開始瘋了!不確定你是否看過它,但GIS Stack Exchange也是一個很好的地方。 – Evan 2011-03-30 22:18:21

+0

@Evan沒問題,很高興我能幫忙,我會檢查一下Stack Exchange以及謝謝你的提示。這也是一個更清晰的解釋,我正在試圖闡明關於面向對象編程和程序編程http://en.wikipedia.org/wiki/Object-oriented_programming它的好處是這些事情現在正在提出,我是試圖讓我的一個好朋友(他不是一個真正的技術人員)自己做一些彈性工作(主要是爲了他的樂隊網站),所以如果我發佈了一些資源,這將是一件好事。他們在我的網站上我也會在這裏下載鏈接。 – shaunhusain 2011-03-30 23:35:45