Flex與Javascript相互呼叫

2021-05-27 15:15:30 字數 1295 閱讀 7865

用flash cs3開發,或者在flex裡建立as專案開發,與flex裡建立flex專案開發,在對於呼叫外部的問題,比如externalinte***ce類這個命令:結果一樣嗎?答案是不一樣,這是個很奇怪的問題,其實是源於flex在建立的時候內部包含的東西很多,還加了個框架,如果你按照flash cs3裡開發那樣的命令,去呼叫外部js,結果會很糟糕.應該說完全不同.

首先來看一下乙個簡單的case,先說flash cs3裡怎麼做,不過這種方法,我已經在裡寫過,很簡單.ok,我按照上面那個qq的例子,做乙個改變,就是我在網頁初始後,就希望得到乙個我在js裡寫好的值,並且初始化完成後,在flash裡直接顯示.怎麼做?

在網頁**裡裡,加乙個js命令,onload="所要執行的程式".然後在裡寫那個需要執行的程式,比如

< body onload="pageinit()" >

然後在script裡寫上乙個初始程式,我是按照以上那個qq例子來做,那麼就該寫成

function pageinit()

那麼得到的結果是,在網頁初始後,flash呈現的是穿上編號為1的那個衣服,而不是光著膀子.很簡單,對吧,那麼問題來了,如果按照同樣的方法,在flex是否可以實現呢?那麼我們來換一種例子來做,只是簡單的傳輸乙個字元.我們首先在flex裡寫:

看這樣就做好了乙個很簡單的在網頁傳輸資料,並且在flex接收的程式了,那麼我們繼續玩點新花樣,我需要在網頁初始後,flex首先能夠顯示出我在網頁裡,或者js裡預加的值,比如:welcome什麼的.怎麼做?在一開頭,我就用flash cs3寫過,直接在object裡放乙個onload命令就可以了,但是flex能這樣做嗎?答案是否定的,很多人會被這個問題搞暈,那麼到底該如何解決這個問題呢?

其實就是比以前複雜一點,就是多加幾個小確認.由於解釋起來太麻煩,我就把每行**都注釋一下,先放flex埠的script裡的**,其他的都一樣.

下面是js裡的**.同樣也是script裡的**,不過別忘了object 裡要先寫上οnlοad="pageinit()"這個命令.

var jsready = false;

//在預先設定jsready這個值為false,然後在網頁初始後,讓其值為true;那麼等flex在call isready()這個命令後,會返回乙個true值,這樣flex裡的程式才會繼續執行.

function pageinit()

在flex裡要實現網頁初始,並能顯示乙個預先設定好的值的確複雜,要是flash cs3裡就方便了很多,其他細節還需要自己細細體會了,以下是原始檔,由於安全

域問題,可能你把原始檔弄過去後,比較難除錯.乾脆直接拷貝**到你自己建立的專案就可以了,然後再改html的**.

flex 增長與收縮

flex auto 將增長值與收縮值設定為1,基本大小為 auto flex none.將增長值與收縮值設定為0,基本大小為 auto 也就是固定大小。增長 基本大小 額外空間 增長係數 增長係數總和 按比例劃分額外空間,然後各自分配。縮小 基本大小 溢位大小 縮小係數 基本大小 各各縮小係數 自身...

flex入門之Flex與Flash的關係

flex 入門之flex與 flash 的關係 首先這裡想說的是,flash 並非只是乙個單純的向量動畫創作工具,而是乙個憑藉指令碼語言 actionscript 在功能和定位上不斷演變的網路應用開發工具。早在 flashmx 的時候就已經成為 macroemdia 推廣ria 戰略的工具。但是畢竟...

JavaScript與ActiveX之間傳遞資料

本文研究如何在js等指令碼語言與activex控制項之間通訊,如何傳遞各種型別的引數,以及com的idispatch介面。使用類似的方法,可以推廣到其他所有指令碼型語言,如lua,autocad等。本文將研究以下幾個方面 整型陣列傳參 字串引數,字串返回值 修改傳入字串內容 陣列引數 idispat...