靜態引數傳遞的幾種方式

2021-05-23 15:54:56 字數 1117 閱讀 8052

靜態傳值是區別於與服務端通訊進行值傳遞的方式,例如loadvars,xml,remoting之類,後者暫且不在本文的討論範圍內,當你想讓flash獲取url中的引數時,你為何不換個角度想了?其實我們可以讓服務端動態生成swf的的插入**,主動將我們需要的引數「靜態」傳遞給flash,flash直接用就可以了,根本不需要自己去拿,而以何種形式傳遞給flash,就是我所指的靜態傳值。我知道的可行的html與flash之間的靜態傳值方法有三種: swf位址後使用引數傳遞符「?」 flashvars傳遞 js控制   下面來具體介紹下這三種方式的傳遞是如何工作的:  

一、swf位址後使用引數傳遞符「?」

其中粗體部分對應的就是swf檔案的位址,那麼我們可以在這個位址後面通過類似於url中get方式傳參的方法來個swf傳遞引數,例如上面**在頁面完全載入完畢時,它已經給swf檔案寫入了兩個變數:uid=12和uname=vsky。

二、flashvars傳遞

你可以查閱flash幫助文件來看flashvars的官方定義。其實在html語法中,這是乙個被很多新手所忽視的屬性,同樣以上面的引數為例,下面用flashvars來傳遞變數:

跟方式一相同,它也是直接給flash裡新增了這兩個變數。但我個人推薦使用此方式,結合swfobject的使用,使用flashvars來傳遞變數有很多好處,例如**清晰,容易管理,瀏覽其相容,符合標準。他們的結合使用在「為flash程式構造靈活的介面」一文中我已經做了介紹(ps:隨後我會提供乙個複雜點的、有說服力的實際應用來說明這種靈活介面的使用)。  

三、js控制

在這裡我們只需要使用的是粗體標識的setvariable方法,js通過呼叫此方法能夠直接更改swf中的變數值。首先我們需要定義插入的swf的id,例如id為vskydemo,那麼我們可以通過下面的js語句來完成swf內部變數的設定:

window.document.vskydemo.setvariable("uid", 12);

很簡單吧,就是這樣的。除非是涉及到了html中swf之外元素跟它互動,否則我一般不使用js來控制swf裡的變數,因為我總覺得怪怪的,呵呵,個人習慣吧。  多多實踐,不要覺得這些小東西不起眼,小東西多了,聚結到一起了就是乙個大的應用。

vue router傳遞引數的幾種方式

vue router傳遞引數分為兩大類 程式設計式導航傳遞引數有兩種型別 字串 物件。this.router.push home 想要傳遞引數主要就是以物件的方式來寫,分為兩種方式 命名路由 查詢引數,下面分別說明兩種方式的用法和注意事項。命名路由的前提就是在註冊路由的地方需要給路由命名如 命名路由...

vue router傳遞引數的幾種方式

引數在鏈結上顯示 this.router.push this.route.query.id 引數不在鏈結上顯示 this.router.push 注 採用params在必須要要在路由上配置name,否則undefined routes route.params.id html 取參 this.rou...

vue router傳遞引數的幾種方式

傳遞引數分為兩種型別 字串,物件 字串的方式是直接將路由位址以字串的方式來跳轉,這種方式簡單但不能傳遞引數 this.router.push home 想要傳遞引數主要就是以物件的方式來寫,分為兩種方式 命名路由,查詢引數 命名路由的前提是在註冊路由的地方給路由命名如 命名路由傳遞引數需要使用par...