1

私は、アナリストプログラマーのポジションに異動したGISアナリストです。プログラミングのバックグラウンドがあまりないので、これは私にとって難しい移行でしたが、私はそれに夢中になりました。

jspページ内のFlexアプリに取り組んでいます。基本的に、画像とテキストを含む3x2のグリッドです。私がやろうとしているのは、このページに複数のtitleWindow参照があるため、画像をクリックするとtitleWindowが開きます。(誰かがより良いアイデアを持っている場合、特にそれがホバーに関係している場合、私はそれに対して非常にオープンです!)現在私はそれを1つの画像に対して機能させています。ただし、2番目の関数を追加しようとすると、エラーが発生します。「エラー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静的メソッドの引数の1つがユーザーの操作をブロックするか(アプリケーションをぼかすことで示される)、ウィンドウを表示するだけにするかを指定するモーダルパラメーター。むしろ、このエラーは、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のバージョンを投稿して、複製を試みてください。

編集:ああ、コードの残りの部分がそれをクリアするのを見て大丈夫です...同じ正確な名前を持つ2つの関数を持つことはできないので、コードには2回宣言された関数としてshowWindowがあります(わかりませんこれがどのようにコンパイルを通過しているのか、私はコンパイラが実行前にこのエラーを見るのに十分賢いだろうと想像していましたが、それはそれが何であるかです)。他のshowWindowを、showOtherWindowのようなものまたはそれらの線に沿ったものに変更します。また、手続き型プログラミングのバックグラウンド(Cまたはその他の非OOP言語)から来ているように見えます。オブジェクト指向プログラミングは、頭を動かすのに少し時間がかかりますが、現実世界の問題を解決することになると、はるかに理にかなっています。それを理解してください、基本的にあなたは

これは役立つ場合があります:http: //www.codeproject.com/KB/architecture/OOP_Concepts_and_manymore.aspx

私は基本的にスキルの面で反対側にいます。私はコンピューターサイエンスのデポール大学から正式な教育を受けていますが、現在の位置では多くのgoogleマップフラッシュコードを実行しているので、ますます自分自身を見つけていますデータムと他のGIS専門情報を理解する必要があります(同じ交差点で誰かを見つけるのはちょっと面白いと思っていましたが、反対方向に進んでいます:)。

于 2011-03-30T17:18:47.243 に答える