Toon posts:

[Flash/AS] Kleur instellen van nieuw aangemaakte MC

Pagina: 1
Acties:

Verwijderd

Topicstarter
De code zoals ik gokte dat het zou moeten werken (onderstaande code geeft als output een lege movie):

Flash ActionScript:
1
2
3
4
5
6
7
createEmptyMovieClip("oBgr", getNextHighestDepth());
oBgr._x = 0;
oBgr._y = 0;
oBgr._width = 500;
oBgr._height = 500;
var oColor = new Color(oBgr);
    oColor.setRGB(0xFFCC33);


Als test heb ik eerst een afbeelding ingeladen in de nieuw aangemaakte MC, en toen bleek het wel te werken:

Flash ActionScript:
1
2
3
4
5
6
createEmptyMovieClip("oBgr", getNextHighestDepth());
oBgr.loadMovie("clash1.jpg");
oBgr._x = 0;
oBgr._y = 0;
var oColor = new Color(oBgr);
    oColor.setRGB(0xFFCC33);

Maar als ik vervolgens de code plaats om te resizen werkt het weer niet:

Flash ActionScript:
1
2
3
4
5
6
7
8
createEmptyMovieClip("oBgr", getNextHighestDepth());
oBgr.loadMovie("clash1.jpg");
oBgr._x = 0;
oBgr._y = 0;
oBgr._width = 500;
oBgr._height = 500;
var oColor = new Color(oBgr);
    oColor.setRGB(0xFFCC33);

Verwijderd

Het kan te maken hebben met feit dat het laden van de JPG even duurt (een fractie van een seconde welliswaar maar toch...). Je moet de properties van een geladen movie dan ook pas zetten nadat de movie is ingeladen (in jouw geval een JPG). Je moet dus een onEnterFrame schrijven die kijkt of alle data is geladen en dan pas de settings veranderd (Laat je overigens niet verleiden door onLoad van movieclip, die wordt aangeroepen als er een instantie wordt gemaakt).

  • LB Back
  • Registratie: November 2004
  • Laatst online: 14-03 23:22
Dat is op zich niet raar, iets wat niets is kun je niet iets maken, errrr, in gewone mensentaal; de naam van de functie zegt het al: createEmptyMovieClip gaat uit van 0x0. Een emptyMovieClip "kleuren" kleurt alleen wat er in zit, niet de hele movieClip (en de hele movieClip bestaat eigenlijk dus weer niet omdat ie empty is)

Wat is je doel? Een emptyMovieClip met een bepaalde kleur en afmeting maak je zo:

var mc:MovieClip = createEmptyMovieClip("oBgr", this.getNextHighestDepth());
oBgr._x = 0;
oBgr._y = 0;
mc.beginFill(0xFFCC33, 100);
mc.lineStyle(1, 0x000000, 0);
mc.lineTo(0, 500);
mc.lineTo(500, 500);
mc.lineTo(500, 0);
mc.lineTo(0, 0);

Of je nu een lijn tekent, een vierkant en dat vult, of er een foto inzet, met new Color() kleurt ie alleen dat. Op het moment dat je een lijn of een vlak hebt gescript ziet de player de mc niet meer als empty en kun je ook resizen. Een foto beschouwt ie niet als "native" content.