jsp嵌入flex後,操作flex功能時禁用滑鼠在頁面的點擊

來源:互聯網
上載者:User

Flex 的ActionScript和javaScript是可以通過Flex提供的ExternalInterface類進行互動的。在類似portal項目中嵌入flex展現的內容,而期間在操作文檔過程可能需要消耗較長時間,而在此期間期望客戶靜心等待片刻,故而需要禁掉菜單,組織其進入其他模組。故而可以利用ExternalInterface的call方法來禁掉滑鼠的單擊事件。

     在html-template\index.template.html中加入要在flex中調用javascript function。

function callNoUse(){self.parent.frames["frame3"].donotUsed();}function callCanUse(){self.parent.frames["frame3"].canUsed();}

    這樣flex就可以在需要禁掉按一下滑鼠時在actionscript中執行下列方法

ExternalInterface.call("callNoUse");

    而在需要可以單擊時則調用

ExternalInterface.call("callCanUse");

flex與jsp本身是利用frameset整合在一起的,大致布局如下所示

<frameset rows="23%,*" cols="840px"  frameborder="no" framespacing="0" style="text-align:MIDDLE;"><frame src="../top.html" name="frame3" frameborder="0" scrolling="no" noresize="noresize"/><frameset  rows="*" cols="*,1025,*"><frame/><frame src="<%=path%>/WorkplaceFx.html" name="frame2" frameborder="0" scrolling="no" noresize="noresize" /><frame/></frameset></frameset>

       而需要最終執行的javascript方法在frame3中,代碼如下所示。

function donotUsed(){document.onmousedown = nonClick;}function canUsed(){document.onmousedown = null;}function nonClick(e){if(window.event){e = window.event;}if(e.button == 1){alert("請等待...");}}

上述flex調用的方法之所以放到html-template\index.template.html中,是由於該檔案對flex的特殊性,從其名字我們可以看出,其為模板檔案,而改目錄下的所有檔案實際上對部署項目沒有起作用,但在編譯階段swf及對應的html是根據這個模板來產生的。相關代碼放入其中保證其穩定不丟失。簡單說說flex html-template檔案夾的構成,它包含三個檔案和一個檔案夾:

1、index.template.html. HTML封裝檔案。

2、swfobject.js. 一個JavaScript庫,包含運行時載入Flash Player的方法,也包含判斷使用者Flash Player 版本的功能。Flex4 現在是使用swfobject.js 這個開源的JS庫來部署Flash Player 和程式,而Flex3 是用 AC_OE_Tags.js。swfobject.js 相關詳細資料可以參考Adobe官網http://code.google.com/p/swfobject 。

3、playerProductInstall.swf. 一個Flash程式,被用來在高於6.65版本的Flash Player 被安裝後更新使用者系統的Flash Player。

4、history檔案夾,包含用於曆史管理的幾個檔案檔案:
     · historyFrame.html. HTML頁面模板,在運行時被首頁的<iframe>載入。
     · history.js.一個JavaScript庫,包含了一些可以被historyFrame.html調用的方法。
     · history.css. 包含一些 historyFrame需要的樣式


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.