javascript調用Flash裡對象的方法(函數)搞了五個小時。

來源:互聯網
上載者:User

標籤:

搞了幾個小時後,才發現,之前走的路是錯的。

今天在Firefox瀏覽器上測試一個javascript調用Flash中的一個對象的方法時遇到問題了,

一搞就整整搞了一個下午。

我記得之前我用Flash8的時候沒有遇到過這樣的問題。

我的程式大概是這樣,我用Flash製作了一個菜單,預設情況下,開啟網頁時,這個菜單隱藏,當滑鼠放在一個小表徵圖上後,這個菜單顯示出來,並且會根據當前的網頁資料情況,顯示菜單中的幾項,同時隱藏幾項不需要顯示的功能表項目。

我在Flash中使用ExternalInterface.addCallback 註冊了一個方法名叫:setMenuItemVisible(b:Boolean)

打算在網頁中的javascript中調用。

可誰知程式寫好後,在IE瀏覽器下運行一切正常,但在Firefox上老是提示錯誤:

無法在javascript中調用 setMenuItemVisible() 方法。

我開始到百度去搜尋,找了一個多小時後,終於找到了一篇檔案:

http://www.coolcode.cn/show-291-1.html

我把這篇內容在我的百度空間收藏了一下:
http://hi.baidu.com/personnel/blog/item/8c04cd119effe919b8127b47.html

原來因為瀏覽器的原因,如果在IE以外的大多數瀏覽器上執行javascript調用Flash中的函數時,一般要在 window.onload=function(){載入Flash}
不然,在Flash中註冊的一些對外的函數將無法在javascript中調用。

本來以為到這裡原因找到了,可是接下來又遇到了一個非常頭痛的問題。

因為我的Flash是先隱藏,在javascript觸發事件後,才顯示,我使用的是

flash.style.display="none";
flash.style.display="";

在Firefox上測試的時候發現,當在這顯示和隱藏兩種狀態下轉換的時候,每次Flash都會重新載入一次,真暈!

後來又到百度搜尋了一下,找到了這麼一篇文章,現在我收藏了一下:

http://hi.baidu.com/personnel/blog/item/a8f40fb3025decaed8335a43.html

最終重寫了Flash代碼,因為之前的代碼邏輯上在Firefox上不是好辦法。

 

2009-08-12

javascript調用Flash裡對象的方法(函數)搞了五個小時。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.