Avatar billede kezzelski Nybegynder
28. juni 2001 - 23:26 Der er 4 kommentarer og
1 løsning

Download af ekstra class-filer efter at en applet er startet!

Jeg er igang med at lave et spil, hvis klasser fylder rimeligt meget! Det ville derfor være behageligt for en bruger at han i stedet for den kedelige grå skærm kunne få et eller andet at se før alle klasser er hentet. Jeg mener at have set noget lignene på andre javaspil. Dvs. at jeg søger en eller anden måde der kan enten vise noget, mens klasserne downloades, eller kan hente en applet, der bagefter henter resten!!
Er dette muligt????
Avatar billede ultik Nybegynder
28. juni 2001 - 23:30 #1
der er en tutorial inde på netcoders.dk der gør noget ala det, noget med Kill the gray applet box, af Tony Fonager mener jeg... prøv at kigge...
Avatar billede agermose Nybegynder
29. juni 2001 - 09:00 #2
Hvis du bruger lazy instantiering sammen med at du først angiver din klasse med Class.forName() så kan du udskyde det en del. Generelt bliver en klasse først loaded når den bliver brugt første gang.
Avatar billede kezzelski Nybegynder
29. juni 2001 - 09:27 #3
Tutoren fra netcoders.dk kunne jeg desværre ikke bruge! Den er kun til download af billeder, hvilket jeg har i forvejen! Jeg kunne dog godt tænke mig at vide lidt mere om \"lazy instantiering\".... hvor kan jeg finde noget om det?
Kezzel
Avatar billede logical Nybegynder
29. juni 2001 - 09:45 #4
Kill the grey applet optimerer kun load af billeder, alt andet giver stadig tid.

Lav en lille appletstup, som kan loade resten, og derefter starte det.

Kort sagt, alle offentlige metoder i din applet laver du om så de ikke er nedarvet offentligt, men kommer som et argument, ala.

Istedet for
class MyApplet extends Applet{
void init() {
  ...
}
}

ret til
class MyApplet {
void init(Applet a) {
  a.add(new Button());
}
}

Og derefter lav en loadapplet:
class LoadApplet extends Applet {
  boolean loaded=false;
  MyApplet theApplet = null;

  void init() {
  start_a_thread_to_get_other_classes();
  be_sure_to_receive_a_callback_when_possible();
}

void classLoaded() {
  theApplet = what_was_loaded();
  theApplet.init(this);
  loaded=true;
  this.invalidate();
  this.validate();
}

void start() {
  if (loaded)
  theApplet.start(this);
}

void stop() {
  if (loaded)
    theApplet.stop(this);
}

  // Display while loading.
  void paint(Graphics g) {
  if (!loaded) {
    g.drawString(\"Loading please wait\", 30, 40);
    g.drawString(\"now would be a great time to fill in your registration card\",1,1);
  } else
    theApplet.paint(this, g);

  }
  }
}

Det er ikke en hel løsning, kun ideer, men kan du fange den
Avatar billede renf Nybegynder
29. juni 2001 - 09:49 #5
du kan også bare lave en lille applet der viser at du downloader som du så viser før den store applet, det er den mest brugte metode :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester