<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    ivaneeo's blog

    自由的力量,自由的生活。

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks
    功能描述:在Flex中嵌套框架,并且進行數值傳遞
    1、編輯Flex框架組件iFrame.mxml
    <?xml version="1.0" encoding="utf-8"?>
        <mx:Script>
        <![CDATA[
            import flash.external.ExternalInterface;
            import flash.geom.Point;
            import flash.net.navigateToURL;
            private var __source: String;
            /**
             * Move iframe through ExternalInterface. The location is determined using localToGlobal()
             * on a Point in the Canvas.
             **/
            private function moveIFrame(): void
            {
                var localPt:Point = new Point(0, 0);
                var globalPt:Point = this.localToGlobal(localPt);
                ExternalInterface.call("moveIFrame", globalPt.x, globalPt.y, this.width, this.height);
            }
            /**
             * The source URL for the IFrame. When set, the URL is loaded through ExternalInterface.
             **/
            public function set source(source: String): void
            {
                if (source)
                {
                    if (! ExternalInterface.available)
                    {
                        throw new Error("ExternalInterface is not available in this container. Internet Explorer ActiveX, Firefox, Mozilla 1.7.5 and greater, or other browsers that support NPRuntime are required.");
                    }
                    __source = source;
                    ExternalInterface.call("loadIFrame", source);
                    moveIFrame();
                }
            }
            public function get source(): String
            {
                return __source;
            }
            /**
             * Whether the IFrame is visible.
             **/
            override public function set visible(visible: Boolean): void
            {
                super.visible=visible;
                if (visible)
                {
                    ExternalInterface.call("showIFrame");
                }
                else
                {
                    ExternalInterface.call("hideIFrame");
                }
            }
        ]]>
        </mx:Script>
    </mx:Canvas>
    2、放置到要使用框架的Flex中index.mxml,并寫入引用哪個frame.html
    <ui:IFrame id="iFrame" source="frame.html" visible="true" width="100%" height="300"/>
    3、在引用框架的Flex生成頁index.html里加入:
         <1. wmode set to opaque
         在調用swf的后面加上"wmode","opaque"
         例如:"pluginspage", "
               "wmode","opaque"
         <2. the moveIFrame,hideIFrame,showIFrame,loadIFrame methods
         <script language="JavaScript" type="text/javascript">

    <!--
    // -----------------------------------------------------------------------------
    // Globals
    // Major version of Flash required
    var requiredMajorVersion = 9;
    // Minor version of Flash required
    var requiredMinorVersion = 0;
    // Minor version of Flash required
    var requiredRevision = 28;
    // -----------------------------------------------------------------------------
    // -->
    function moveIFrame(x,y,w,h) {
        var frameRef=document.getElementById("myFrame");
        frameRef.style.left=x;
        frameRef.style.top=y;
        var iFrameRef=document.getElementById("myIFrame");
          iFrameRef.width=w;
          iFrameRef.height=h;
    }
    function hideIFrame(){
        document.getElementById("myFrame").style.visibility="hidden";
    }

    function showIFrame(){
        document.getElementById("myFrame").style.visibility="visible";
    }
    function loadIFrame(url){
          document.getElementById("myFrame").innerHTML = "<iframe id='myIFrame' src='" + url + "'frameborder='0'></iframe>";
    }
    //要調用的內容,加載前三個就可以了,后面這個函數是用來調用返回值
    function getEditorText(){
          return document.getElementById("myIFrame").contentWindow.GetEditorText1();
    }
    </script>
         <3. the 'myFrame' div
             在</body>這前寫入:
             <div id="myFrame" style="position:absolute;background-color:transparent;border:0         px;visibility:hidden;"></div>
    4、在Flex頁面index.mxml輸入的函數值,調用index.html中的'getEditorText'函數,并且寫入到text1.text中
         text1.text=ExternalInterface.call('getEditorText',param1,param2,param3,...)
         getEditorText:函數名稱
         param:參數值
    5、在生成頁中取得框架中的函數
         框架內的frame.html,放置在head之間:
        function GetEditorText1(){
         return getHTML(params);
         index.html生成頁的調用,設置在head之間:
         function getEditorText(){
          return document.getElementById("myIFrame").contentWindow.GetEditorText1();
         }
        
    后記:實際中在這里只是調用一個層放在對應位置而已,當我們在Flex中做申縮動作時,層也要跟著改變,我是如此處理的:
         設置move或show事件,當move或show時則調用:iFrame.source = "frame.html"
    參考:

    具體的一個例子——使用IFrame這個框架的一個頁面的代碼如下:

    <!-- saved from url=(0014)about:internet -->
    <html lang="en">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <script src="AC_OETags.js" language="javascript"></script>
    <style>
    body { margin: 0px; overflow:hidden }
    </style>


    <script>
    <!--
    function moveIFrame(x,y,w,h) {
    // alert("move to " + x + "," + y + ", " + w + "/" + h);
        var frameRef=document.getElementById("myFrame");
        frameRef.style.left=x;
       frameRef.style.top=y;
        frameRef.width=w;
        frameRef.height=h;
    }

    function hideIFrame(){
    // alert("hide");
        document.getElementById("myFrame").style.visibility="hidden";
    }

    function showIFrame(){
    // alert("show");
        document.getElementById("myFrame").style.visibility="visible";
    }

    function navigateTo(url) {
    // alert("nav to " + url);
    // alert("from " + document.getElementById("myFrame").location);
    document.getElementById("myFrame").src = url;
    }

    -->
    </script>


    <script language="VBScript">
    <!--

    // Catch FS Commands in IE, and pass them to the corresponding JavaScript function.
    Sub flexapp_FSCommand(ByVal command, ByVal str)
        call flexapp_DoFSCommand(command, str)
    end sub

    // -->
    </script>
    </head>
    <body style="margin:0px">

    <object onMouseDown="document.body.focus();"
       classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000'
      

    codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,14

    ,0'
       width='100%' height='100%'
       id='flexapp' name='flexapp'>
       <param name='flashvars' value=''>
       <param name='src' value='EXPIframe.swf'>
       <param name="wmode" value="opaque">
       <embed pluginspage='http://www.macromedia.com/go/getflashplayer' width='100%'

    height='100%'
           flashvars=''
           src='EXPIframe.swf'
           name='flexapp'
           wmode="opaque"
           swLiveConnect="true"
       />
    </object>

    <iframe id="myFrame" name="myFrame"
        frameborder="0"
        style="position:absolute;background-

    color:transparent;border:0px;visibility:hidden;"></iframe>

    </body>
    </html>

    posted on 2012-03-08 22:48 ivaneeo 閱讀(2551) 評論(1)  編輯  收藏 所屬分類: flex-我酷所以我在

    Feedback

    # re: Flex組件IFrame中嵌入HTML頁面的方法 2014-08-14 16:54 12
    12123  回復  更多評論
      

    主站蜘蛛池模板: 亚洲电影免费在线观看| 久久亚洲AV永久无码精品| 久久精品国产亚洲AV不卡| 久久免费香蕉视频| 国产jizzjizz视频免费看| 亚洲avav天堂av在线网爱情| 国产在线播放线91免费| 国产精品亚洲产品一区二区三区| 亚洲AV无码一区二区乱子仑| 国产va免费精品观看精品| 久久av无码专区亚洲av桃花岛| 毛片在线播放免费观看| 国产亚洲精久久久久久无码77777| 立即播放免费毛片一级| 精品免费国产一区二区三区 | 亚洲成a人片77777kkkk| 一级毛片人与动免费观看| 全黄a免费一级毛片人人爱| 深夜A级毛片视频免费| mm1313亚洲国产精品美女| 亚洲av成人一区二区三区观看在线| 亚洲中文字幕不卡无码| 在线精品免费视频| 亚洲av午夜电影在线观看| 亚洲高清在线观看| 100部毛片免费全部播放完整| 亚洲视频2020| 最近最好的中文字幕2019免费| 亚洲国产精品嫩草影院| 伊在人亚洲香蕉精品区麻豆| 8x成人永久免费视频| 亚洲一区二区三区免费观看 | 亚洲精品又粗又大又爽A片| 国产无遮挡色视频免费视频| 黄页网站在线视频免费| 亚洲无码在线播放| 最近中文字幕mv免费高清在线| 日韩精品视频在线观看免费| 亚洲中文无码永久免| 久久久久国产成人精品亚洲午夜| 久久综合AV免费观看|