Из формы HTML я хочу запустить существующее существующее приложение flex flex, передающее параметры E.G, данные для входа.Как получить доступ к параметрам запроса html во внешнем mxml
Допустим, у меня есть простая 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 и какой соответствующий код ActionScript, который входит в функцию init()?
Или, по крайней мере, для чего нужно искать?
Примечание. Очевидно, что неприемлемо иметь параметры и значения, отображаемые в URL-адресе браузера. В противном случае это было бы легко.
Также обратите внимание, что приложение не встроено в исходную HTML-страницу, хотя 99,9% результатов поиска, которые я нашел в этом разделе, приводят пример того, что делать, если это было.
В идеале исходный запрос будет запросом POST, но, по-видимому, он не может обрабатывать почтовые запросы.
Я пытался FlashVars без толка (хотя и не совсем уверен в формате HTML, если он не посылает к встроенной SWF внутри HTML - и, как я сказал, нашел 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 всегда: «i: 13287332432».a 'i:', за которым следует куча чисел («i:» - это просто совпадение, изменение строки на ta1.text + = j + "->" + FlexGlobal ... все равно приведет к i: 123123 ') – user1196263
Кроме того, я все еще не думаю, что у меня есть html правильно. Где тег объекта и его содержимое относятся к форме ввода html? Полное удаление тега объекта по-прежнему приводит к «i: 123234213», когда я запускаю приложение через кнопку отправки. Спасибо – user1196263
Я думал, что у вас есть два html-файла: 1. как форма и 2. вложение SWF. правильно?! во втором вы должны получить данные POST из FORM и передать их SWF-объекту. но почему вы пытаетесь сделать FORM в html и не включать это в свое flash-приложение? было бы проще, и вам не пришлось бы передавать параметры из html-> flash. – pkyeck