從HTML表單中,我希望啓動我的現有工作flex應用程序,傳遞參數E.G,登錄信息。如何在外部mxml中訪問html請求參數
可以說我有一個簡單的HTML頁面,根本沒有FLASH。
<h1>Test sending parameters</h1>
<form name="login" action="http://example.com/myflexApp/index.html"
target="_new" method="POST">
username: <input type="text" name="username" />
password: <input type="text" name="password" />
<input type="submit" value="Submit" />
</form>
這將在一個新的瀏覽器窗口中打開了我的第一次應用
我index.mxml其中編譯創建的index.html看起來像這樣(簡化):
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
...
creationComplete="init(event)" xmlns:omp="omp.*">
<fx:Style source="defaults.css"/>
<fx:Script>
<![CDATA[
import ...
protected function init(event:FlexEvent):void
{
if (params[username] && params[password])//psuedo code
{
Alert.show(params[username],params[password]);//debugging
//login(params[username],params[password]);//psuedo code to log in automatically
}else{
//existing code to show login form which works
}
}
]]>
</fx:Script>
<mx:ViewStack id="vs" width="100%" height="100%" ...>
</mx:ViewStack>
</s:Application>
那麼,html代碼應該是什麼樣子,以及init()函數中相應的actionscript代碼是什麼?
或者,至少我應該使用Google搜索嗎?
注:顯然,瀏覽器的URL地址中顯示參數和值是不可接受的。否則,這將很容易。
另請注意,該應用程序未嵌入到原始HTML頁面中,但我在該主題中找到的搜索結果中的99.9%給出瞭如果發生該操作的示例。
理想情況下,原始請求將是一個POST請求,但顯然flex不能處理post請求。
我已經試過Flash變數無濟於事(雖然不能完全肯定的HTML格式的,如果它不發送到HTML中嵌入的SWF - 就像我說的,找到的例子100的,如果它是)
HTML:
<param name="flashvars" value="test='default text'" />
MXML:
if (FlexGlobals.topLevelApplication.parameters.hasOwnProperty("username"))
{
Alert.show(FlexGlobals.topLevelApplication.parameters.username);
}
//Alert.show(LoaderInfo(this.root.loaderInfo).parameters.username);//also fails
在大多數其他語言這麼簡單,我有但與FLEX沒有運氣的工作。我顯然缺少一些基本的東西。
謝謝pkyeck。我曾嘗試過這個例子,但沒有成功。 ta1元素的內容總是:'我:13287332432'。'i:'後跟一堆數字('i:'只是巧合,將行改爲ta1.text + = j +「 - >」+ FlexGlobal ...仍然會導致'i:123123 ') – user1196263 2012-02-08 20:44:36
此外,我仍然認爲我沒有得到正確的HTML。 object標籤和它的內容與html輸入表單有關的地方在哪裏?當我通過提交按鈕啓動應用程序時,完全刪除對象標籤仍會導致「我:123234213」。謝謝 – user1196263 2012-02-08 20:54:37
我以爲你有兩個html文件:1.作爲窗體和2.嵌入SWF。對?!在第二步中,您必須從FORM獲取POST數據並將它們傳遞給SWF對象。但你爲什麼試圖在HTML中做FORM,而不是將其包含到你的Flash應用程序中?會更容易,你不必從html-> flash傳遞參數。 – pkyeck 2012-02-08 22:41:29