Toon posts:

[Flash] Preload externe JPG's

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik probeer een preloader te maken voor dynamische JPG's. Onderstaande object word aangemaakt, en hierin word de preloader en JPG ingeladen.

Probleem is dat hij de preloader pas laat zien wanneer het plaatje is ingeladen. Ik zie eerst een wit scherm, vervolgens als de JPG ingeladen is, word de JPG geprojecteerd, en zie ik de grijze balk. Wanneer ik de totalbytes en loadbytes trace krijg ik ook eerst 0, en wanneer het plaatje is ingeladen pas de totale bytes.

[ Voor 56% gewijzigd door Verwijderd op 27-04-2003 17:23 ]


  • GrimaceODespair
  • Registratie: December 2002
  • Laatst online: 10:32

GrimaceODespair

eens een tettenman, altijd ...

Ik heb het nooit uitgebreid onderzocht, maar weet je zeker dat je de progressie kunt meten van een afbeelding die geladen wordt? Immers, als je bij de profiler in de Flash IDE de preload volgt, zie je altijd dat ie het filmpje in een soort atomen laadt. Ik zou me kunnen voorstellen dat een afbeelding zo'n atoom is, die zeg maar wel of niet geladen is.

Wij onderbreken deze thread voor reclame:
http://kalders.be


Verwijderd

Flash kan geen progressive jpgs laden, en dus ook niet traceren.

  • GrimaceODespair
  • Registratie: December 2002
  • Laatst online: 10:32

GrimaceODespair

eens een tettenman, altijd ...

Verwijderd schreef op 24 April 2003 @ 23:41:
Flash kan geen progressive jpgs laden, en dus ook niet traceren.
Mr PatrickPietens wil graag de load status in bytes weten van een jpg, niet de preview zien van een half geladen jpg (waar progressive jpg met interlacing speciaal voor is uitgevonden). Dus dat je jouw progressive jpg niet kunt importeren in Flash, impliceert niet automatisch dat je de progressie (!= progressive) niet zou kunnen meten.

Denk ik zo bij mezelf om 1u 's nachts...

Wij onderbreken deze thread voor reclame:
http://kalders.be


Verwijderd

Topicstarter
Precies wat GrimaceODespair zegt, ik wil graag de progressie zien in bytes, en niet dat het plaatje al half op het scherm staat. Ik zie vaak preloaders voor externe JPG's, maar het is mij op een of andere manier nog niet gelukt. Zoals ik al aangaf is de MC eerst 0 bytes en daarna dus het aanbtal bytes van het plaatje. Flash geeft echter geen tussenwaardes terug. De plaatjes zijn overigens groot genoeg, want het duurt enkele seconde dat flash ze projecteert op het scherm.

  • GrimaceODespair
  • Registratie: December 2002
  • Laatst online: 10:32

GrimaceODespair

eens een tettenman, altijd ...

Patrick, als je nou precies dezelfde code gebruikt, maar dan een swf inlaadt ipv een jpg, en je gaat dan kijken of het progressie uitlezen werkt. Als dan namelijk je percentages wel werken, lijkt het er toch op dat het gewoon niet gaat met jpg's.

Wij onderbreken deze thread voor reclame:
http://kalders.be


Verwijderd

GrimaceODespair schreef op 25 april 2003 @ 10:06:
Patrick, als je nou precies dezelfde code gebruikt, maar dan een swf inlaadt ipv een jpg, en je gaat dan kijken of het progressie uitlezen werkt. Als dan namelijk je percentages wel werken, lijkt het er toch op dat het gewoon niet gaat met jpg's.
Dan meld ik me aan want ik wil graag een swf inladen en dat preload proces laten zien... Is me nog niet gelukt..

Verwijderd

uit de flash Mx bible:
http://www.pietertje.nl/got/preloader_200.fla
--
zowel swf als jpg volgens mij
--
jpg werk iig wel: testjpg: http://www.pietertje.nl/got/jpg/pieter.jpg
--
heb hem nu ook zelf geopend ;)
de loadfile.as:
Flash ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
function loadFile(){
    var fileExtension = fileURL.text.substr(-3);
    _root.createEmptyMovieClip("holder",1);
    if(fileExtension == "swf" || fileExtension == "jpg"){
        holder.loadMovie(fileURL.text);
        var loadObj = holder;
    } else if(fileExtension == "mp3"){
        sound_1 = new Sound(holder);
        sound_1.loadSound(fileURL.text, true);
        var loadObj = sound_1;
    }
    var initObject = {
        _x: fileURL._x,
        _y: fileURL._y - 40,
        target: loadObj,
        loadExit: null
    };  
    _root.attachMovie("loader","loader",2, initObject);
}
function unloadFile(){
    if(typeof(holder) != undefined){
        holder.removeMovieClip();
    }
    if(typeof(sound_1) != undefined){
        sound_1.stop();
        delete sound_1;
    }
}

[ Voor 117% gewijzigd door Verwijderd op 25-04-2003 10:50 . Reden: 3x scheepsrecht ]


Verwijderd

Topicstarter
Ivy: http://www.xs4all.nl/~ndavids/test/

het object werkt nu ook:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
function MediaViewer () {}

MediaViewer.prototype.__proto__ = MovieClip.prototype;
    
MediaViewer.prototype.onLoad = function () {
    this.loaderID = setInterval(this, "checkLoadProgress", 10);
    
    this.createEmptyMovieClip ("preloader", 2);
    this.createEmptyMovieClip ("loadExt", 1);
    this.loadExt.loadMovie("images/" + this.file);
}

MediaViewer.prototype.checkLoadProgress = function () {
    this.kbLoaded = Math.floor(this.loadExt.getBytesLoaded()/1024);
    this.kbTotal = Math.floor(this.loadExt.getBytesTotal()/1024);
    this.percentDone = isNaN(Math.floor(this.kbLoaded/this.kbTotal * 100)) ? 0 : Math.floor(this.kbLoaded/this.kbTotal * 100);
    this.preloadWidth = this.myWidth * (this.kbLoaded / this.kbTotal);
    
    with (this.preloader) {
        beginFill(0xD3D3D3, 100);
        moveTo (0, 0);
        lineTo (this.preloadWidth, 0);
        lineTo (this.preloadWidth, 20);
        lineTo (0, 20);
        lineTo (0, 0);
    }
    
    if (this.percentDone == 100) {
        this.preloader._visible = false; 
        clearInterval(this.loaderID);
    }
}

Object.registerClass("mediaViewer", MediaViewer);

function MediaViewerProp (x, y, myWidth, file) {
    this._x = x;
    this._y = y;
    this.myWidth = myWidth;
    this.file = file;
}


Je roept hem als volgt aan :

code:
1
2
myProps = new MediaViewerProp(10, 10, 100, "test.jpg");
this.attachMovie("mediaViewer", "newName", 1);


Hier is vereist dat in de library een lege MC staat met de linkage naam "mediaViewer"

[ Voor 125% gewijzigd door Verwijderd op 25-04-2003 13:25 ]


  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07-2025
let wel dat er een bug in MX zit zodat je percent niet altijd op 100 uitkomt... (soms stopt ie 4 bytes te vroeg).

Een pure AS optie is ook wel mooier dan werken met register-class gedoe.

Verwijderd

Topicstarter
ik had hem nodig voor mijn eigen project op deze manier, vandaar dat ik hem hier heb gepost nu. Misschien dat iemand anders hem kan aanpassen zonder registerclass

[ Voor 18% gewijzigd door Verwijderd op 27-04-2003 17:22 ]


Verwijderd

hobbit_be schreef op 25 April 2003 @ 17:08:
let wel dat er een bug in MX zit zodat je percent niet altijd op 100 uitkomt... (soms stopt ie 4 bytes te vroeg).

Een pure AS optie is ook wel mooier dan werken met register-class gedoe.
Wat is er onpuur aan registerclass volgens jou?

  • oh,when?
  • Registratie: April 2000
  • Niet online

oh,when?

...

Ter aanvulling, het is onnodig de __proto__ property specifiek te laten verwijzen naar de Movieclip.prototype object, aangezien de chain zich al direct in het Movieclip object bevindt. Zonder het te testen vermoedt ik dat het geheel ook gaat werken als je het prototype object van Mediaviewer een subclass maakt van het Movieclip object...


Flash ActionScript:
1
MediaViewer.prototype = new MovieClip();


:)

"You're only as good, as what you did last week."


  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07-2025
Verwijderd schreef op 25 April 2003 @ 19:13:
Wat is er onpuur aan registerclass volgens jou?
onpuur? niets... gewoon overkill , iets waar flash net iets te veel aan heeft. Ook nog moeilijker om gebruik. Gebruik jij 'components' ofzo? MM zelf niet meer :)

  • oh,when?
  • Registratie: April 2000
  • Niet online

oh,when?

...

hobbit_be schreef op 25 april 2003 @ 21:50:
[...]
onpuur? niets... gewoon overkill , iets waar flash net iets te veel aan heeft. Ook nog moeilijker om gebruik. Gebruik jij 'components' ofzo? MM zelf niet meer :)
erm? hoezo gebruikt Macromedia zelf geen componenten? Volgens mij worden er met de nieuwe Central toch echt heel wat nieuwe componenten gebruikt. En ja ik maak zelf ook uitgebreid gebruik van deze componenten....

dus ik weet niet waar je deze informatie vandaan hebt.. :?

"You're only as good, as what you did last week."


  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07-2025
oh,when? schreef op 25 april 2003 @ 22:10:
[...]

dus ik weet niet waar je deze informatie vandaan hebt.. :?
hun eigen site :) of heb je hun flash only versie gemist? daar is zoveel commentaar
op gekomen (vooral performance) dat ze nu toch de meeste content met dhtml doen. Ook op 'de' mailing list zijn zowat alle grote namen (moock et al) het erover eens dat components in flash echt niet voldoen en veel te traag zijn (en slecht gemaakt). Hele goede mailinglist trouwens, met pro contra flash maar altijd geinformeerd.

Ik denk dat jij een XP1500mhz machineetje hebt ofzo, want anders raak je components voor geen meter aan...

mijn eigen 'scrollbar' (beetje .as) gaat minstens 10x sneller en reageert beter...

Naar't schijnt (rumour) gaat in 7 er heel wat veranderen met components -
er is veel teveel kritiek van de meest fanatische achterban.

  • oh,when?
  • Registratie: April 2000
  • Niet online

oh,when?

...

Erm...volgens mij haal je een paar dingen door elkaar

1) Macromedia flash site was nooit helemaal flash only, alleen de homepage tijdens beta1 ( ook niet helemaal maar goed. ) Als je de under the hood reports goed doorleest dan weet je ook welke keuzes ze hebben gemaakt om het geheel qua performance op te krikken.

2) Op 'de' mailinglist ( die ik van het begin heb zien groeien... ) wordt er inderdaad vaak over de architectuur van de componenten gepraat, maar zo zwart-wit als jij het stelt heb ik het niet gezien

3) Ik test al mijn flash sites op een simpele p2 500 computertje, plus nog eens 3 jaar oude imacs, qua performance.

4) Ik vermoed dat jij met moock en consorten bedoeld de petitie die nu loopt voor een betere preloading API?

5) Jouw eigen scrollbar zal het misschien 10x zo sneller zijn, maar bevat het ook daadwerkelijk _alle_ functionaliteit van de FUIC component sets? Ik betwijfel het. Ik moedig iedereen aan om zijn eigen componenten te schrijven die dezelfde functionaliteit bezitten als de FUIC componenten en ook 10x sneller en lichter zijn, maar ik vermoed dat je dat niet zult lukken...niemand niet. Toegegeven, er is zeker ruimte voor verbetering, en de componenten die met de DRK's komen zijn ook echt stukken beter dan de eerder gereleasde sets ( Macromedia Charting components..iemand? :r )

:)

/edit

Nog ter aanvulling...gezien het feit hoe Macromedia Flash tegenwoordig presenteert, als multi-user rich internet application IDE, betwijfel ik of componenten op de schop gaan, simpelweg omdat ze een mooie analogie vormen met de welbekende RAD drag 'n drop elementen... :)

[ Voor 11% gewijzigd door oh,when? op 26-04-2003 01:37 ]

"You're only as good, as what you did last week."


Verwijderd

Ik denk dat hier wel de misconceptie bestaat dat components direct iets te maken met registerclass (of andersom).
Idd. components zijn traag. De MM components that is. Maar dat weerhoud je er absoluut niet van om registerclass te gebruiken om (linkage) movieclips hun 'warmup' te laten houden.
Ikzelf ben nu bezig met een nieuwe (snellere) versie van de PI homepage flash, in 5 that is, en daarin zou ik nu zo graag registerclass willen.....

Laten we dus misconcepties uit de weg gaan. EVT een thread openen over de pros en cons over registerclass? Overkill is mijn opinie dus 'false', maar ik zou het je graag zien onderbouwen, misschien leren we er wat van?

  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07-2025
nieuwe thread dan maar - preloaden jpg's hebben hier niets meer mee te maken...

  • oh,when?
  • Registratie: April 2000
  • Niet online

oh,when?

...

waar blijft die thread dan? :)

"You're only as good, as what you did last week."

Pagina: 1