html 網頁傳值給 flash

2009-04-15 於 晚上10:20
最近筆者有朋友在問html 怎麼傳值給swf,然後改變swf裡的畫面,
方法有很多,像是在html後面加變數,用swfobject,用dreamwave內建的方法都ok
筆者用比較通用的dreamwave來實做。

以最常用的到flash menu 按鈕為例子,
當點擊about 按鈕時,按鈕變為一直高亮,直到我點擊其他欄目,"about"按鈕高亮結束,
點擊其他btn的時候,會聯到其他的html網頁,該單元的btn也會是高亮,如下圖


話不多說,就先來看看怎麼做的吧,

在flash的寫法如下
1、先確定flash 的資訊有完全loading進來
this.loaderInfo.addEventListener(Event.COMPLETE, loaderComplete);
2、然後用變數去接



function loaderComplete(evt:Event) {
//用變數去接
if (root.loaderInfo.parameters["category"] != null)
{
test.text = root.loaderInfo.parameters["category"];
btnIdx=root.loaderInfo.parameters["category"];
}
createMenu();


btnIdx=root.loaderInfo.parameters["category"];←btnIdx為html要傳入的變數,等一下會在dreamwave 設定

3、然後用迴圈產生btn,並在將btn丟入1個btnList 的array,在產生完後,順便指定目前html項目的btn為高亮,

4、在DRWAM 指定變數就可以使用了如圖


source code下載

4 意見

  1. maimai Says:

    請問這是否是as3.0嗎?可否用2.0嗎?

  2. jerry Says:

    AS2.0 也可以呀,^^

  3. maimai Says:

    呵~jerry的語法要有一定的程度才可以懂
    我還是初學所以有些地方不太了解,要怎麼去改變...

    我在網路上找尋另一個方法
    http://blog.xuite.net/ben19770209/ASBeginner/3476228
    我有照著這位版主的方式去做停在指定選單項目
    但是下方的按鈕不會變?也改了html裡的變數!

    好像在本機測試firefox就不能了?
    而且在firefox中之用好像中間與下方的安鈕會有空隔...


    檔案:http://files.uploadffs.com/d/8/24808965/.rar

  4. maimai Says:

    請問一下,我要的效果是這樣的
    但是是針對flash裡面製作的,又該如何用呢?我是用AS2.0