Er der nogen der har prøvet og fundet ud af hvordan den virker?
Jeg har en Air application der skal stå og vise diverse reklamespots, 8 timer om dagen men som det er lige nu bliver alle spots gemt i hukommelsen, og efter en time dør maskinen det bliver afviklet fra. For at få tømt ud i hukommelsen har jeg fået installeret seneste Air SDK (3.2.x) i Flex Builder 3, og har nu fået unloadAndStop frem på min SWFloader, men jeg synes ikke det gør den store forskel. Jeg har prøvet at overvåge hukommelsen, og applikationen æder bare mere og mere ram uanset om jeg bruger unloadAndStop eller ej
Gør jeg noget galt, eller virker den bare ikke?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | private function goFullscreen(event:TimerEvent):void{ Debug.log("goFullscreen"); stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE; verticalScrollPolicy = "off"; horizontalScrollPolicy = "off"; stage.addEventListener(FullScreenEvent.FULL_SCREEN, function(e:FullScreenEvent):void{ Application.application.close() }); loader.load("PlaylistApplication.swf") } public function reloadManager():void{ loader.unloadAndStop(); loader.load("PlaylistApplication.swf") } |
6 kommentarer
BUMP
Alternativt, er der en måde at genstarte hele Air applikationen?
Nu har jeg så fået testet det lidt mere, på diverse maskiner for at undersøge det nærmere. Det er testet på XP pc'er med 128mb til 2gb
Hver gang computeren er ved at løbe tør for ram, tømmer flashen ud så der er plads til nye swfs. Hvis jeg holder øje med joblisten kan jeg se at når applikationen når omkring 80 mb ram (ud af 128 i dette tilfælde) sletter den ca halvdelen, altså så der er 40mb tilbage. Derefter sluger den som tidligere nævnt bare ram igen, indtil den når 80-90
Det fungerer egentlig som det skal, i ca en time, derefter begynder windows at brokke sig over at "Den minimale virtuelle hukommelse er for lille". Billedet fryser fast, men det virker til at applikationen stadig kører baseret på aktiviteten i windows' jobliste og aktivitet på serveren som den henter swf fra.
Er der nogen der har en god forklaring? Eller som jeg tidligere skrev, en måde at få det til at genstarte hele programmet og tømme det hele
http://www.gskinner.com/blog/archives/2008/07/additional_info.html
http://www.gskinner.com/blog/archives/2006/07/as3_weakly_refe.html
Kig evt. lidt på dem - hvis du da ikke allerede har været der!
husk at fjerne alle referencer, objekter, etc. du kan i/til den swf du loader, unloadAndStop() fjerner ikke alle ting af sig selv.
Tak for det bloop. Den sidste havde jeg ikke set
Jeg har dog fundet en anden løsning nu, så det kører i en browser i fullscreen. Det er ikke optimalt, men den kører langt mere stabil end Air