Volledige versie bekijken : favorieten met flex?
StevenW
%Europe/Berlin %593 %2007, 14:15
Ik vond laatst een website die met flex was gemaakt. Op deze site kon je de 'states' opslaan in je favorieten. Hoe doe je zoiets dat je in flex niet de 'start-pagina' krijgt als je een variabele aan de link toevoegt.
Thomaz
%Europe/Berlin %612 %2007, 14:42
Ik vond laatst een website die met flex was gemaakt. Op deze site kon je de 'states' opslaan in je favorieten. Hoe doe je zoiets dat je in flex niet de 'start-pagina' krijgt als je een variabele aan de link toevoegt.
Opslaan in je favorieten van de applicatie of van je webbrowser?
TheDutch
%Europe/Berlin %879 %2007, 21:06
Je kunt URL variables meegeven aan een SWF en die gebruiken binnen de SWF om bijvoorbeeld naar een bepaalde state te gaan.
index.swf?state=contactForm kan bijvoorbeeld naar de state "contactForm" gaan wanneer je dat zo hebt geprogrammeerd in je SWF. Je kunt dus dat soort URL's bookmarken in je browser.
Het is eigenlijk precies hetzelfde concept als variable meegeven aan een Flashmovie. Je kunt het dus ook via Flashvars doen en een taal als PHP. In ActionScript 3 benader je ze zo:
var qryStr:Object = LoaderInfo(this.root.loaderInfo).parameters;
var statePassed:String = qryStr.state;
Waldo
%Europe/Berlin %436 %2007, 10:27
Tip: URLKit http://joeberkovitz.com/blog/urlkit/
TheDutch
%Europe/Berlin %445 %2007, 10:41
I like it! :D
Dank je voor de link Waldo.
Via javascript dus...zo eenvoudig kan het zijn, haha.
rackdoll
%Europe/Berlin %480 %2007, 11:32
Nice
StevenW
%Europe/Berlin %852 %2007, 21:27
Is het ook mogelijk om vanuit de html pagina een variabe door te geven aan flex? Dus dat je een var doorgeeft in de broncode van de pagina aan de swg tag?
TheDutch
%Europe/Berlin %321 %2007, 08:43
Zie post #3 van dit onderwerp Steve :).
StevenW
%Europe/Berlin %004 %2007, 01:07
en state is dan van Flashvars="state=1" ?
hmm. Het lukt me niet om met dat stukje code een naam uit de html code in een textfield te krijgen. :S
Ik krijg trouwens een error door 'root' volgens mij.
2 1119: Access of possibly undefined property root through a reference with static type Class.
TheDutch
%Europe/Berlin %255 %2007, 07:08
Steve, wanneer iets niet lukt laat dan even zien hoe je het toepast :).
StevenW
%Europe/Berlin %391 %2007, 10:23
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
id="Chat" width="100%" height="100%"
codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
<param name="movie" value="Chat.swf" />
<param name="flashVars" value="fvuser=Steven">
<param name="quality" value="high" />
<param name="bgcolor" value="#869ca7" />
<param name="allowScriptAccess" value="sameDomain" />
<embed src="Chat.swf" flashVars="fvuser=Steven" quality="high" bgcolor="#869ca7"
width="100%" height="100%" name="Chat" align="middle"
play="true"
loop="false"
quality="high"
allowScriptAccess="sameDomain"
type="application/x-shockwave-flash"
pluginspage="http://www.adobe.com/go/getflashplayer">
</embed>
</object>
en
var qryStr:Object = LoaderInfo(this.root.loaderInfo).parameters;
var statePassed:String = qryStr.fvuser;
TheDutch
%Europe/Berlin %400 %2007, 10:36
Dat lijkt me logisch ja, maar waar heb je precies dat ActionScript staan?
StevenW
%Europe/Berlin %562 %2007, 14:29
public function get_login_name():String{
var qryStr:Object = LoaderInfo(this.root.loaderInfo).parameters;
var fv_user:String = qryStr.fvuser;
return fv_user;
}
tussen alle andere functies. De functie wordt aangeroepen door creationComplete van de textfield
TheDutch
%Europe/Berlin %612 %2007, 15:41
Wat ik bedoel, staat het in de Application of in een ander component of iets dergelijks?
StevenW
%Europe/Berlin %614 %2007, 15:45
Nee het staat in de application.
TheDutch
%Europe/Berlin %763 %2007, 19:18
Je moet het event "applicationComplete" gebruiken op de <mx:Application /> tag ipv. het event "creationComplete", omdat alleen wanneer de hele applicatie geladen is die variables beschikbaar zijn :).
Ganndlas
%Europe/Berlin %489 %2007, 12:45
en state is dan van Flashvars="state=1" ?
hmm. Het lukt me niet om met dat stukje code een naam uit de html code in een textfield te krijgen. :S
Ik krijg trouwens een error door 'root' volgens mij.
2 1119: Access of possibly undefined property root through a reference with static type Class.Ja ik krijg ook een error door root class.
Ik heb nu dit: (Was om eerst even met een label te testen)
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
var qryStr:Object = LoaderInfo(this.root.loaderInfo).parameters;
var statePassed:String = qryStr.state;
]]>
</mx:Script>
<mx:Label x="10" y="10" text="{statePassed}" width="700"/>
</mx:Application>
Hoort het niet _root ipv root te zijn? Of [Bindable]?
TheDutch
%Europe/Berlin %492 %2007, 12:49
Lees mijn vorige reacties!
Ganndlas
%Europe/Berlin %495 %2007, 12:54
Lees mijn vorige reacties!Huh? :O
Het lijkt alsof ik soms maar de helft vn de posts zie :S
Nu al de tweede keer dat ik iets post en er dan ineens stuk of 5 meer posts zijn, of ik ben gewoon blind P)
TheDutch
%Europe/Berlin %510 %2007, 13:15
Let goed op je scrollbalk ;).
Er worden namelijk regelmatig anchors gebruikt waardoor de pagina niet bovenaan begint maar ergens halverwege om je precies naar het juist stukje hulp te laten gaan.
Ganndlas
%Europe/Berlin %519 %2007, 13:27
Oke zal ik doen :)
Ik probeer nu mijn functie te maken voor mijn ID maar mijn parameter in mijn label zetten lukt al niet :P
Nou ik ga even eten
TheDutch
%Europe/Berlin %873 %2007, 21:57
Ga eens ergens anders spammen!
StevenW
%Europe/Berlin %700 %2007, 17:48
Het wil bij mij gewoon niet lukken :(
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at sga/get_user()
at sga/___Application1_applicationComplete()
at flash.events::EventDispatcher/flash.events:EventDispatcher::dispatchEventFunctio n()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()
at mx.managers::SystemManager/::preloader_preloaderDoneHandler()
at flash.events::EventDispatcher/flash.events:EventDispatcher::dispatchEventFunctio n()
at flash.events::EventDispatcher/dispatchEvent()
at mx.preloaders::Preloader/::displayClassCompleteHandler()
at flash.events::EventDispatcher/flash.events:EventDispatcher::dispatchEventFunctio n()
at flash.events::EventDispatcher/dispatchEvent()
at mx.preloaders::DownloadProgressBar/::timerHandler()
at mx.preloaders::DownloadProgressBar/::initCompleteHandler()
at flash.events::EventDispatcher/flash.events:EventDispatcher::dispatchEventFunctio n()
at flash.events::EventDispatcher/dispatchEvent()
at mx.preloaders::Preloader/::dispatchAppEndEvent()
at mx.preloaders::Preloader/::appCreationCompleteHandler()
at flash.events::EventDispatcher/flash.events:EventDispatcher::dispatchEventFunctio n()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()
at mx.core::UIComponent/set initialized()
at mx.managers::LayoutManager/::doPhasedInstantiation()
at Function/http://adobe.com/AS3/2006/builtin::apply()
at mx.core::UIComponent/::callLaterDispatcher2()
at mx.core::UIComponent/::callLaterDispatcher()
Application:
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
backgroundGradientColors="[#549300, #ffffff]"
creationComplete="initApp()"
frameRate="31" applicationComplete="get_user()">
public function get_user():void{
var qryStr:Object = LoaderInfo(this.root.loaderInfo).parameters;
var fv_user:String = qryStr.fvuser;
tf_name.text=fv_user;
}
html
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
id="sga" width="100%" height="100%"
codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
<param name="movie" value="sga.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#869ca7" />
<param name="flashVars" value="fvuser=Steven">
<param name="allowScriptAccess" value="sameDomain" />
<embed src="sga.swf" flashVars="fvuser=Steven" quality="high" bgcolor="#869ca7"
width="100%" height="100%" name="sga" align="middle"
play="true"
loop="false"
quality="high"
allowScriptAccess="sameDomain"
type="application/x-shockwave-flash"
pluginspage="http://www.adobe.com/go/getflashplayer">
</embed>
</object>
Ganndlas
%Europe/Berlin %710 %2007, 18:03
Het wil bij mij gewoon niet lukken :(
Ik zie het niet maar mij is het wel een keertje gelukt parameters mee te sturen.
Maak eens een nieuwe mxml en test het volgende:
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
id="sga" width="100%" height="100%"
codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
<param name="movie" value="SWFURL" />
<param name="quality" value="high" />
<param name="bgcolor" value="#869ca7" />
<param name="flashVars" value="fvuser=Steven">
<param name="allowScriptAccess" value="sameDomain" />
<embed src="sga.swf" flashVars="fvuser=Steven" quality="high" bgcolor="#869ca7"
width="100%" height="100%" name="sga" align="middle"
play="true"
loop="false"
quality="high"
allowScriptAccess="sameDomain"
type="application/x-shockwave-flash"
pluginspage="http://www.adobe.com/go/getflashplayer">
</embed>
</object>
public function get_user():string{
var qryStr:Object = LoaderInfo(this.root.loaderInfo).parameters;
return qryStr.fvuser;
}
<mx:label id="tf_name" text="{get_user()}" ... />
TheDutch
%Europe/Berlin %005 %2007, 01:07
----------------------
TheDutch
%Europe/Berlin %011 %2007, 01:17
Steve, Ik heb je code exact overgenomen en bij mij werkt het prima! :)
Het enige wat het in mijn ogen kan zijn (aangezien ik daar geen inzicht in heb) is dat "tf_name.text" bij jou niet beschikbaar is op het moment dat je deze wilt vullen.
StevenW
%Europe/Berlin %717 %2007, 18:13
tf_name zit in een viewstack op de 2e view. Dus dat klopt. Moet ik het dan op de tf_name zetten met creationComplete? Of kan dat ook niet, ik heb het namelijk geprobeerd en als ik het goed gedaan heb dan werkt het niet. Hoe kan ik tf_name toch veranderen als die niet beschikbaar is op het moment van applicationComplete?
TheDutch
%Europe/Berlin %721 %2007, 18:18
Gebruik een ModelLocator variable of zet de property "creationPolicy" van de ViewStack op "All" zodat alle views direct geinit worden in plaats van pas wanneer je er voor het eerst naar toe gaat :).
StevenW
%Europe/Berlin %776 %2007, 19:37
Ik heb het zo gedaan:
<mx:label id="tf_name" text="{get_user()}" ... />
Het probleem is iets met de javascript tags in het html bestand.
Dit:
AC_FL_RunContent(
"src", "playerProductInstall",
"FlashVars", "MMredirectURL="+MMredirectURL+'&MMplayerType='+MMPlayerType+'&MMdoctitle='+MMdoctitle+"",
"width", "100%",
"height", "100%",
"align", "middle",
"id", "sga",
"quality", "high",
"bgcolor", "#869ca7",
"name", "sga",
"allowScriptAccess","sameDomain",
"type", "application/x-shockwave-flash",
"pluginspage", "http://www.adobe.com/go/getflashplayer"
);
Het ging om de flashvars die waarschijnlijk werden vervangen.
TheDutch
%Europe/Berlin %777 %2007, 19:39
Volgensmij vergeet je weer eens antwoord te geven op mijn vorige reactie :).
StevenW
%Europe/Berlin %788 %2007, 19:55
TheDutch, het werkt al. U had gelijk. Het had allang gewerkt als ik de javascript wat aandacht had gegeven.
TheDutch
%Europe/Berlin %908 %2007, 22:48
Fijn! :)
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.