IFrameCommTest.mxml

<?xml version="1.0" encoding="utf-8"?>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 - Copyright (c) 2009 flex-iframe
 -
 - Permission is hereby granted, free of charge, to any person obtaining a copy
 - of this software and associated documentation files (the "Software"), to deal
 - in the Software without restriction, including without limitation the rights
 - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 - copies of the Software, and to permit persons to whom the Software is
 - furnished to do so, subject to the following conditions:
 -
 - The above copyright notice and this permission notice shall be included in
 - all copies or substantial portions of the Software.
 -
 - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 -  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 - THE SOFTWARE.
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 - $Id: IFrameCommTest.mxml 199 2010-05-19 21:00:39Z Julien.Nicoulaud $
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 -->
<!---
    An example application showing how to communicate between the application and the frame.
    
    @author Alistair Rutherford
-->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
                xmlns:flexiframe="http://code.google.com/p/flex-iframe/"
                horizontalAlign="center"
                verticalAlign="middle"
                viewSourceURL="srcview/index.html">

    <mx:Script>
        <![CDATA[

            import mx.controls.Alert;
            import mx.events.CloseEvent;
            
            [Event(name="DirectionEvent", type="flash.events.Event")]
            
            /**
            * When the button is clicked.
            */
            public function onButtonClicked(message:String):void
            {
                test.visible = false;
                Alert.show(message, null, Alert.OK, null, closeAlertListener);
            }
            
            /**
            * Called when the Alert is closed.
            */
            private function closeAlertListener(eventObj:CloseEvent):void
            {
                test.visible = true;
            }
            
            /**
            * On form submit.
            */
            private function onSubmit(event:Event):void
            {
                var ev:DirectionEvent = new DirectionEvent(toId.text, fromId.text);
                this.dispatchEvent(ev);
            }
        ]]>
    </mx:Script>

    <!-- Example project presentation -->
    <mx:ApplicationControlBar dock="true">
        <mx:Text selectable="false">
            <mx:htmlText><![CDATA[<font color="#000000" size="12"><b>Flex-IFrame - IFrame communication example</b><br>This example shows how to communicate between the application and the frame. It illustrates the overlay detection feature too.</font>]]></mx:htmlText>
        </mx:Text>
    </mx:ApplicationControlBar>

    <!-- Initialises FABridge  -->
    <fab:FABridge xmlns:fab="bridge.*" />

    <!-- The application main panel -->
    <mx:Panel id="iFramePanel"
              title="Communication between application and frame / overlay detection"
              width="80%"
              height="80%"
              horizontalAlign="center">

        <!-- The form to send data to the IFrame -->
        <mx:HBox paddingTop="5">
            <mx:TextInput id="toId" text="Glasgow"/>
            <mx:TextInput id="fromId" text="London"/>
            <mx:Button label="Submit to and from" click="onSubmit(event)"/>
        </mx:HBox>

        <mx:HRule width="95%"/>

        <!-- The IFrame -->
        <flexiframe:IFrame id="test"
                           label="Map"
                           source="myHTML.html"
                           width="100%"
                           height="100%"/>

    </mx:Panel>

</mx:Application>