CallIFrameFunction.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: CallIFrameFunction.mxml 199 2010-05-19 21:00:39Z Julien.Nicoulaud $
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 -->
<!---
    An example application that demonstrates the callIFrameFunction() method.
    
    @author Julien Nicoulaud
-->
<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;

        /**
         * Call the 'showAlert()' JavaScript method.
         */
        private function callShowAlert():void
        {
            iFrameWithJSfunctions.callIFrameFunction('showAlert');
        }

        /**
         * Call the 'showAlertWithParameter()' JavaScript method.
         */
        private function showAlertWithParameter():void
        {
            iFrameWithJSfunctions.callIFrameFunction('showAlertWithParameter', [ 'flex-iframe o//' ]);
        }

        /**
         * Call the 'getCurrentDate()' JavaScript method.
         */
        private function callGetCurrentDate():void
        {
            iFrameWithJSfunctions.callIFrameFunction('getCurrentDate',null,handleGetCurrentDateResult);
        }

        /**
         * Handle the 'getCurrentDate()' JavaScript method result.
         */
        private function handleGetCurrentDateResult(result : Object):void
        {
            Alert.show("The 'getCurrentDate()' method returned '" + result + "'.");
        }

    ]]>
    </mx:Script>

    <!-- Example project presentation -->
    <mx:ApplicationControlBar dock="true">
        <mx:Text selectable="false">
            <mx:htmlText><![CDATA[<font color="#000000" size="12"><b>Flex-IFrame - callIFrameFunction() example</b><br>This example shows how to use the callIFrameFunction() method.</font>]]></mx:htmlText>
        </mx:Text>
    </mx:ApplicationControlBar>

    <!-- The IFrame -->
    <flexiframe:IFrame id="iFrameWithJSfunctions"
                       label="Map"
                       source="pageWithJSfunctions.html"
                       width="400"
                       height="120"
                       overlayDetection="true" />

    <!-- Javascript functions controls -->
    <mx:VBox id="javascriptFunctionsControls"
             width="400">
        <mx:Button click="callShowAlert()"
                   label="call 'showAlert()'"
                   width="100%"/>
        <mx:Button click="showAlertWithParameter()"
                   label="call 'showAlertWithParameter()'"
                   width="100%"/>
        <mx:Button click="callGetCurrentDate()"
                   label="call 'callGetCurrentDate()'"
                   width="100%"/>
    </mx:VBox>

</mx:Application>