[actionscript flash mx - load xml]

Pagina: 1
Acties:

  • ZOMERZON
  • Registratie: Juni 2001
  • Laatst online: 13-03 11:45

ZOMERZON

Voor Geen Cent Gaat De Zon Op

Topicstarter
Wie weet hoe ik onderstaande script kan veranderen naar een 'onload' actie, dus als de swf aangeroepen wordt, dat het meteen afspeelt.
Op dit moment gaat dat via een button on release en zonder on release wil hij het niet doen.... thx alvast


on (release) {
_root.load("holder", "http://www.geocities.com/mcfalski/city.jpg", 130, 123);
}

Verwijderd

Wat heeft dit met xml te maken? Dat 'script'wat je daar hebt staan snap ik ook niet helemaal?

  • McVirusS
  • Registratie: Januari 2000
  • Laatst online: 21-08 10:46
Verwijderd schreef op 14 January 2003 @ 13:49:
Wat heeft dit met xml te maken? Dat 'script'wat je daar hebt staan snap ik ook niet helemaal?


Iets over klok & klepel waarschijnlijk :), maar inderdaad..geef eens wat meer informatie. In je voorbeeld code probeer je een JPG te laden (nog op verkeerde manier ook :P volgens mij) en geen SWF. In je topictitel heb je het over XML maar dat zie ik niet terug in je code. Kortkom; meer informatie nodig.

  • XangadiX
  • Registratie: Oktober 2000
  • Laatst online: 17-06 09:56

XangadiX

trepanatie is zóó kinderachtig

ofwel in je holder neerzetten

Flash ActionScript:
1
2
3
4
5
onClipevent(load) {
this.loadMovie("http://www.geocities.com/mcfalski/city.jpg");
this._x = 130
this._y = 123
}


of in je timeline zetten:

Flash ActionScript:
1
_root.load("holder", "http://www.geocities.com/mcfalski/city.jpg", 130, 123);

Stoer; Marduq


  • ZOMERZON
  • Registratie: Juni 2001
  • Laatst online: 13-03 11:45

ZOMERZON

Voor Geen Cent Gaat De Zon Op

Topicstarter
Ja, sorry... zit een foutje in de subject :)

maar in principe is dit een 'deel' van een jpg preloader en een button met bovenstaande script roept dus de plaatje aan die in wordt geladen.

  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07-2025
euh en wat staat er in jouw "load" functie?

  • XangadiX
  • Registratie: Oktober 2000
  • Laatst online: 17-06 09:56

XangadiX

trepanatie is zóó kinderachtig

hmmzz... hobbit; volgens mij moet dat loadMovie zijn ja... overheen gelezen

Stoer; Marduq


  • ZOMERZON
  • Registratie: Juni 2001
  • Laatst online: 13-03 11:45

ZOMERZON

Voor Geen Cent Gaat De Zon Op

Topicstarter
De rest van de code ziet er zo uit....

movieclip.prototype.load = function(tar, img, posx, posy) {
this.createEmptyMovieClip(tar, 1);
this[tar].loadMovie(img);
this.onEnterFrame = function() {
percent = (this[tar].getBytesLoaded()/this[tar].getBytesTotal())*100;
bytesTotal.text = this[tar].getBytesTotal()+" Bytes Total";
bytesLoaded.text = this[tar].getBytesLoaded()+" Bytes Loaded";
if (!isNan(percent)) {
perText.text = Math.round(percent)+"% loaded";
} else {
perText.text = "0% loaded";
}
if (percent == 100) {
this[tar]._x = posx;
this[tar]._y = posy;
delete this.onEnterFrame;
}
};
};


Misschien dat iemand dan een idee heeft om 3 plaatjes te kunnen laden ??

  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07-2025
movie.prototype.load ? now that's a recipe for disaster :).

1. afblijven zoveel dat je kan van de MovieClip.prototype.
2. een createEmptyMovieclip returned een object ref, gebruik die ipv this["tar"]...
dus this.holder_mc = creat....("anyName"+depth,depth); //naam maakt niets meer uit
3. onEnterframe is niet een trustworthy methode voor preloaders - alleen een setInterval
is echt reliable
4. getBytesTotal KAN 0 zijn dus krijg je al ineens a div by 0... (dus beter if > dan isNan...)
5. het hoeft niet altijd te zijn dat getTotal en getLoaded gelijk zijn het kan ook wat vroeger dit is een tamelijk bekende bug in de flash player (dus if total.loaded + 4 (bytes)).
6. wel goed is dat je een holder hebt. nadat deze geload is dus doe je een ander (ik gebriuk een downloadmanager (je geeft dus een lijstje door van welke jpg / swf / mp3 en die laat hij sequentieel op).. echt wel letten dat je de depth altijd increased... anders failed de createMovieclip (dupliocate name kan nog net ;)... om het proper te houden doe je voor je loadMovie eerst holder_mc._x =10000000; want anders kan het goed zijn dat ie effe 'flickered'. en als je load compleet is dus holder_mc._x = echte traget...

  • XangadiX
  • Registratie: Oktober 2000
  • Laatst online: 17-06 09:56

XangadiX

trepanatie is zóó kinderachtig

even voor de weet, met [code=as] (afsluiten met <bracket>/code<bracket>kun je zo'n mooi code windowtje krijgen voor actionscript, en of je alsjeblieft je code een beetje kunt opmaken (inspringen) want ik vind het maar lastig lezen zo dank u feestelijk :)

dus:
Flash ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
movieclip.prototype.load = function(tar, img, posx, posy) {
   this.createEmptyMovieClip(tar, 1);
   this[tar].loadMovie(img);
   
   this.onEnterFrame = function() {
      percent = (this[tar].getBytesLoaded()/this[tar].getBytesTotal())*100;
      bytesTotal.text = this[tar].getBytesTotal()+" Bytes Total";
      bytesLoaded.text = this[tar].getBytesLoaded()+" Bytes Loaded";
   
      if (!isNan(percent)) {
         perText.text = Math.round(percent)+"% loaded";
      } else {
         perText.text = "0% loaded";
      }

      if (percent == 100) {
         this[tar]._x = posx;
         this[tar]._y = posy;
         delete this.onEnterFrame;
      }
   };
};


hobbit waarom moet ik van prototype afblijven?

en ik zou de loaded met een if (foo < bar) doen, voor de zekerheid in plaats van NaN

Stoer; Marduq


Verwijderd

XangadiX schreef op 14 januari 2003 @ 19:55:


hobbit waarom moet ik van prototype afblijven?
Niet zo zeer van prototype als wel van movieclip.prototype; als je de superclass movieclip gaat extenden met extra methods geef je alles wat hiervan een subclass is (dus alle andere movieclip gebaseerde classes) alswel elke movieclip deze method.
Niet netjes in de zin van AS/OOP, zeker niet als je naar memory usage gaat kijken.

In specifieke situaties kan het wel handig zijn, maar dat is echt bijna nooit...het enige zinnige waarop ik kan komen is iets als dit.:

Flash ActionScript:
1
2
3
4
5
movieclip.prototype.setScale = function(s){
      this.$scale = s;
      this._xscale *= this.$scale/100;
      this._yscale *= this.$scale/100;
}

  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07-2025
in sommige gevallen wordt de prototype 'overschreven' als je een movieclip_mc.loadMovie doet... dit is een bug in Flash (weer eentje :)...

qua geheugen denk ik niet aangezien een prototype niet word gecopierd (natuurlijk als je object-properties aan geeft wel natuurlijk (zoals die this.$scale, maar niet de property). (en $scale word in zowat elke guide afgeraden te gebruiken (ECMAscript mag, liever niet))... hoeveel newbies daar bang van worden als ze zoiets zien :)... een pVariable (of mp) is toch
ook proper? ;)

Xanadix thx 4 da tip met die code tag... staat vast ergens in de quickstart maar die lees ik niet (veel te veel regeltjes ;)

Verwijderd

elke keer als je : subClass = new Movieclip; doet worden al die proto's gekopie'd...in die zin is het dus wel zeker een memory issue.

$ is alleen maar een char...interreseerd mij niet zoveel of het een p of een $ is....ben net zo blij met $. :)

anywayz ... ;)

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

oh,when?

...

pff sinds wanneer gaan we zo diep in over actionscript? dat is nog nooit gebeurd :D maar erm...en nu we het toch over preloaders hebben, raad ik de topicstarter aan te kijken naar een priorityQueue te maken in Actionscript, das eigenlijk iets wat op iedere standaard informatica opleiding voorbij komt, dus is er ook wel redelijk veel voor te vinden. Volgens mij zat er bij wheelmaker een voorbeeld class, maar ik ben lui om een url te gaan zoeken.

Daarnaast vind ik het opvallend dat hobbit_be vaak over bugs praat, terwijl ik het liever heb over de eigenaardigheden van Flash, nu lijkt het net alsof Flash (MX) een inferieur pakket is dat nog vollop bugs zit, terwijl het tegendeel juist waar is. Alleen dat is weer een onderwerp apart waard. :)

owja....en voor de actionscript code tag, daar heb ik ff om gezeurd: [rml][ feat] code tags voor Actionscript[/rml] ;)

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


  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07-2025
lol tja in ben eerlijk gezegd een 'geforceerd' gebruiker van Macromedia producten - lol. als 'echte' programmeur zijn al die details enorm frustrerend. Daarentegen kan Flash MX idd wel erg veel (te veel) maar sommige basis dingen weer niet. Laten we het erop houden dat er nog VEEL verbetered kan worden... (non - duplicating jpg after dynmaic load? - das is toch te gek) attachMovie die soms wel, soms niet werken (95%/5% :) ) dus eerder een frustratie van scripting talen (waar het als het fout gaat echt niet je eigen fout is, terwijl de bugs bij een 'volwassen' (goed gevonden he ;) compiled language dit altijd je eigen schuld is... Ik kan nog wel een pak meer zeuren over hoe slecht sommige delen van de code van de flash - player zijn (yep heb geluk gehad om er eens naar te kijken) zeker als je weet dat een zoveel goede opensource 'javascript' code available is.. Flash MX is inferieur aan nix helaas omdat er geen competitie is... nooit goed imho. En ben net begonnen met Director MX - is me dat weer een zooitje geworden ;) jongens-jongens. tis tijd dat ik ook eens een Blog begin denk ik...

Flash ActionScript:
1
some AS script 

Verwijderd

oh,when? schreef op 14 januari 2003 @ 21:32:
pff sinds wanneer gaan we zo diep in over actionscript? dat is nog nooit gebeurd :D maar erm...en nu we het toch over preloaders hebben, raad ik de topicstarter aan te kijken naar een priorityQueue te maken in Actionscript, das eigenlijk iets wat op iedere standaard informatica opleiding voorbij komt, dus is er ook wel redelijk veel voor te vinden. Volgens mij zat er bij wheelmaker een voorbeeld class, maar ik ben lui om een url te gaan zoeken.
Wheelmaker class is er ook maar ack! deed het al in 5:

pQueue
swfQueue (gebruikt pQueue om te preloaden)
Pagina: 1