PDA

Volledige versie bekijken : Loader gebruiken vanuit externe class


Rvdb
%Europe/Berlin %508 %2010, 12:11
Beste flashers,

Ik ben al een tijdje aan het vogelen met een Loader die een externe swf op de stage moet toveren.

De AS voor de loader zit verwerkt in een Main class van het document.

Ik krijg een aantal errors, vanuit de Main class die de Loader uitvoert. Onder andere dat de Type niet gevonden word voor de loader en dat de link niet gevonden word. Dit is de functie:

Hulp word gewaardeerd :)



public function InLaden():void
{

var L:Loader = new Loader();
L.load(new URLRequest("bestand.swf"));
HolderMovieClip.addChild(L);

}

reapertjuh
%Europe/Berlin %537 %2010, 12:54
import flash.display.Loader;
?

staat je bestand.swf wel in dezelfde map als je Main swf

Jan
%Europe/Berlin %581 %2010, 13:57
Ik krijg een aantal errors
Kopieer de volledige foutmelding(en) zodat we exact weten wat er fout is.
Maar het zal waarschijnlijk een ontbrekende import zijn zoals hierboven gezegd.

Btw, identifiers (instance, function, var names etc.) beginnen met een kleine letter. Enkel classes beginnen met een hoofdletter.

Jan

Rvdb
%Europe/Berlin %604 %2010, 14:30
Het lag idd aan het importeren van de Loader zoals reapertjuh zij. best logisch ook eigelijk :) maar thanks.

Rvdb
%Europe/Berlin %618 %2010, 14:50
Ik ga het nog even ingewikkelder maken :) Dit is het verhaal: Ik heb een class gemaakt die nu een object uit de library haalt en en plaatst op de stage.

Door het importeren van de Loader is dat nu opgelost.

Nu probeer ik vervolgens dat opject te vullen met een swf file, bestand.swf om precies te zijn.

Nu krijg ik de volgende error:

1061: Call to a possibly undefined method addChild through a reference with static type Class.

Rvdb
%Europe/Berlin %624 %2010, 14:58
Dit is de Main class die ik gebruik:


package
{
import flash.display.Sprite;
import flash.display.DisplayObject;
import flash.display.MovieClip;
import flash.events.Event;
import flash.display.Loader;
import flash.net.URLRequest;

public class Main extends MovieClip
{
public var L:Loader;

public function Main():void
{

var hold:holderbestand = new holderbestand();
this.addChild(hold);

this.bestandLaden();

}


public function bestandLaden():void
{

var L:Loader = new Loader();
L.load(new URLRequest("bestand.swf"));
holderbestand.addChild(L);

}
}
}

Jan
%Europe/Berlin %627 %2010, 15:03
Enkel classes beginnen met hoofdletters, de rest allemaal met kleine letter.
Als je je aan deze simpele regel zou houden, zag je meteen dat jij addChild niet op een instance maar op de class zelf probeert toe te passen.
hold is trouwens een lokale variabele en die kan je enkel binnen de functie gebruiken waar je hem hebt aangemaakt (was in AS2 ook zo)


Jan

Rvdb
%Europe/Berlin %679 %2010, 16:18
Thanks for the help. het kwartje is gevallen :)