1. #1
    DeMoN's Avatar
    Registered
    17/07/02
    Location
    Antwerpen
    Posts
    1,341
    iTrader
    1 (100%)
    Mentioned
    1 Post(s)
    Reputation
    11/14

    AS3 Preloaders werken 1x, daarna niet meer

    Hi y'all!

    'k Heb al een tijdje een vrij vervelend probleem, en nu ik vaker met flash bezig ben wordt het alleen frustrerender wanneer ik geen simpele preloader aan de praat krijg.

    Het probleem gaat als volgt:
    Telkens wanneer ik in Firefox (IE8 en Opera = np) een flashproject met as3 preloader bezoek laadt hij de eerste keer perfect en gaat door tot de main site, maar elke volgende keer geraak ik niet voorbij de preloader, blijft de animatie loopen en wordt er geen laadpercentage meer weergegeven. Maak ik m'n cache leeg laadt hij weer perfect, tot ik weer eens refresh.

    2 versch. voorbeelden:
    - Preloader 1
    - Preloader 2 (rap ergens gedownload)

    Eerst dacht ik dat het een gekend probleem was, nl. gzip compressie, maar daardoor zou de preloader de eerste keer ook niet kunnen werken, en staat het ook niet enabled op m'n webserver.

    Heeft iemand een idee hoe ik dit zou kunnen fixen? 'k Heb het al met meerdere verschillende preloaders geprobeerd en het blijft terugkomen.

    Is er misschien een manier om bij elk bezoek een nieuwe download te forceren en de cache te overschrijven ofzo?
    Freelance webdesign & illustration
    www.konraddobson.com
    (vernieuwde portfolio online!)
    no votes  

  2. #2
    W@RLoRD's Avatar
    Registered
    22/08/02
    Location
    Diest
    Posts
    220
    iTrader
    5 (100%)
    Mentioned
    0 Post(s)
    .htaccess bestand aanmaken in de root met volgende code erin

    <FilesMatch "\.(swf)$">
    Header set Cache-Control "max-age=5, public"
    </FilesMatch>


    zorgt dat de swf bestanden in dit geval maar 5 sec in de cache blijven

    maar dat is eigenlijk maar een omweg, een werkende as3 preloader heb ik ook nog ergens staan, ik post het wel als ik die terugvind
    no votes  

  3. #3
    FurtiveDuck's Avatar
    Registered
    04/10/03
    Location
    9000
    Posts
    3,755
    iTrader
    14 (100%)
    Mentioned
    0 Post(s)
    Reputation
    5/35
    Bij mij werkt alles wel goed. Ik kan de preloader zoveel keer laden als ik wil. Nu, ik denk dat er hierboven wel een goede oplossing staat.

    Zelf heb ik ook enkele werkende preloaders en ik moet zeggen. Het zijn verdomd simpele dingen, maar ze kunnen smerig zijn!
    no votes  

  4. #4
    DeMoN's Avatar
    Registered
    17/07/02
    Location
    Antwerpen
    Posts
    1,341
    iTrader
    1 (100%)
    Mentioned
    1 Post(s)
    Reputation
    11/14
    Quote Originally Posted by W@RLoRD View Post
    This quote is hidden because you are ignoring this member. Show
    .htaccess bestand aanmaken in de root met volgende code erin

    <FilesMatch "\.(swf)$">
    Header set Cache-Control "max-age=5, public"
    </FilesMatch>


    zorgt dat de swf bestanden in dit geval maar 5 sec in de cache blijven
    If it works, it works. Thanks. Nu nog zien hoe ik da bij sohosted moeten regelen, aangezien die met iirf.ini bestanden werken ipv .htaccess, en da blijkbaar ni hetzelfde resultaat geeft.
    maar dat is eigenlijk maar een omweg, een werkende as3 preloader heb ik ook nog ergens staan, ik post het wel als ik die terugvind
    'k Heb er al wel een aantal geprobeerd, dus ik verwacht niet dat het iets zou schelen, maar wie weet I'd appreciate the effort!
    Quote Originally Posted by FurtiveDuck View Post
    This quote is hidden because you are ignoring this member. Show
    Bij mij werkt alles wel goed. Ik kan de preloader zoveel keer laden als ik wil. Nu, ik denk dat er hierboven wel een goede oplossing staat.

    Zelf heb ik ook enkele werkende preloaders en ik moet zeggen. Het zijn verdomd simpele dingen, maar ze kunnen smerig zijn!
    Tiens. In Firefox ook? In IE8 en Opera werkt het idd prima.
    Als het bij u in firefox werkt; welk besturingssysteem gebruik je?
    Freelance webdesign & illustration
    www.konraddobson.com
    (vernieuwde portfolio online!)
    no votes  

  5. #5
    FurtiveDuck's Avatar
    Registered
    04/10/03
    Location
    9000
    Posts
    3,755
    iTrader
    14 (100%)
    Mentioned
    0 Post(s)
    Reputation
    5/35
    'k Zal het sebiets eens in Firefox proberen. Maar het was met Internet Explorer 8 op een crapcomputer met Windows XP. Firefox doet erg vaag hierop, dus ik ga het vanavond nog eens testen op m'n Mac.
    no votes  

  6. #6
    DeMoN's Avatar
    Registered
    17/07/02
    Location
    Antwerpen
    Posts
    1,341
    iTrader
    1 (100%)
    Mentioned
    1 Post(s)
    Reputation
    11/14
    'k Heb het op nen andere manier gefixt.. gaat wa miserie besparen
    In den swfobject:

    Code:
    var uniqueID = Date();
    swfobject.embedSWF("kia-ceed_landing-nl.swf?id=" + uniqueID, ...
    Elke keer ge site refresht ist ander sec/min/uur, dus ander bestandsnaam.

    Pfiew! Toch merci voor te checken
    Freelance webdesign & illustration
    www.konraddobson.com
    (vernieuwde portfolio online!)
    no votes  

  7. #7
    Zero Grav's Avatar
    Registered
    06/06/04
    Location
    Bilzen
    Posts
    8,805
    iTrader
    18 (100%)
    Mentioned
    0 Post(s)
    Reputation
    42/128
    Dit is eigenlijk gewoon een 'bug' in Internet Explorer, de oplossing is gewoon om uw loadCompleteHandler van uw preloader uit te voeren in de init functie van uw preloader als uw ingeladen bytes gelijk staan aan uw totale bytes.

    Dus dat is gewoon:

    Code:
    			if (this.loaderInfo.bytesLoaded == this.loaderInfo.bytesTotal)
    			{
    				this.completeHandler();
    			}
    no votes  

  8. #8
    LunchBox's Avatar
    Registered
    18/07/02
    Location
    Deurne
    Posts
    3,854
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    14/14
    Ga je die custom id-parameter ook laten staan, want eigenlijk is't ni sympathiek dat iemand de swf niet uit de cache mag laden als er niets gewijzigd is tov vorige keer. Je kan bijvoorbeeld met een versie-variabele werken ipv een Date-object dat telkens wijzigt.

    Wil je dan pushen dat mensen opnieuw de laatste versie downloaden pas je de versie aan in je html/php file en zullen ze opnieuw de swf downloaden.

    Als je'n eigen webserver draait om lokaal te testen kan je via een kleine applicatie die sloppy heet kan je een trage download ook simuleren. Dit is handig als je de profiler niet kan gebruiken omdat je bijvoorbeeld niet in de IDE compileert. (maar via de flex-SDK die een pak sneller is)

    Als je wel via de flash IDE (het programma flash zelf dus) compileert kan je in het preview-venster kiezen voor VIEW > download settings (zet dat op iets laag) en vervolgens VIEW > SIMULATE DOWNLOAD (ctrl-enter) Dan gaat hij opnieuw compileren maar een tragere lijn simuleren.

    ps: een aanrader voor als je het visuele aspect en code gescheiden wilt houden > flashdevelop (kzal in de zomer wel'ns wat tutorials schrijven)
    Last edited by LunchBox; 05-06-2010 at 19:23.
    no votes  

  9. #9
    DeMoN's Avatar
    Registered
    17/07/02
    Location
    Antwerpen
    Posts
    1,341
    iTrader
    1 (100%)
    Mentioned
    1 Post(s)
    Reputation
    11/14
    Goh 't is ni da mensen meermaals campagnesites bezoeken, en dan nog ist maar 400kb per volledige download.
    Maar idd.. 't is ni optimaal, maar het werkt wel. En de wanhoop dreef me ertoe!

    Het probleem da ik beschreef is voor zover m'n zoekwerk opgeleverd heeft ni direct een codingfout, (al kan het misschien wel omzeild worden) daar het in Internet Explorer en Opera allemaal perfect werkt. Enkel in firefox komt dien bug voor.

    Like I said; eerste download gaat perfect, loader werkt vlot en site laadt.
    Zodra het in cache zit (in firefox!) en ge refresht blijft de preloaderanimatie eindeloos loopen en wordt er geen percentage meer berekend.

    Hier de preloadercode:
    Code:
    function loadProgress(my_content:ProgressEvent):void {	
    	var percent:Number = Math.floor( (my_content.bytesLoaded*100)/my_content.bytesTotal );
    	loadanim.loadTxtAnim.loadPercentText.text = percent + " %";
    	loadanim.gotoAndStop(percent);
    }
    
    function loadComplete(e:Event):void {
    	gotoAndPlay(11);
    }
    
    loaderInfo.addEventListener(ProgressEvent.PROGRESS, loadProgress);
    loaderInfo.addEventListener(Event.COMPLETE, loadComplete);
    Freelance webdesign & illustration
    www.konraddobson.com
    (vernieuwde portfolio online!)
    no votes  

  10. #10
    Flipkikker's Avatar
    Registered
    05/06/04
    Location
    Antwerpen
    Posts
    5,700
    iTrader
    3 (100%)
    Mentioned
    0 Post(s)
    Reputation
    4/23
    Doe in je loadProgress-functie ook een check op het percentage en regel daar zelf ook het dispatchEvent eventueel? Of vernietig de listener van de progress, misschien komt die in de weg te staan van de COMPLETE eventlistener...

    Zelf ook al rare dingen meegemaakt met AS3, zal nogal gevoelig zijn aan kleine codinglogica-foutjes?
    =)
    no votes  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in