Archief - Unieke MovieClips aanmaken in een for-lus

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

GenesisX

Legacy Member
Ik snap niet hoe ik een nieuwe instance kan maken van een movieclip (heb er ongeveer 9 in m'n library) dmv van een stukje tekst plus een nummer (movieclips noemen object1, object 2, ...). 'k Heb hieronder m'n huidige code, maar heb al zoveel dingen geprobeerd en der werkt niks. Is het eigenlijk wel mogelijk, want ik heb altijd da probleem gehad?

Code:
   1. var object:MovieClip;
   2.  
   3. function placeObjects():void {
   4.     for(var i:int=0; i<9; i++){
   5.         trace(i + 1);
   6.        
   7.         object = new "object" + i;
   8.        
   9.         addChild(object);      
  10.     }
  11. }

Code:
   1.     for each (var s:String in objArr) {
   2.         object = new ( s );
   3.         addChild(object);
   4.     }

werkt ook nie. "TypeError: Error #1007: Instantiation attempted on a non-constructor." En 'k snap die ook wel, maar hoe kan ik dan elke keer een nieuw object aanmaken?

Heb het al op véél verschillende manieren geprobeerd, maar ik doe zeker iets mis? Als er iemand kan helpen aub, 't is dringend! :D :bow:

Dr_Evil

Legacy Member
ksnap nie echt wat je wil doen, wil je 9 movieclips uit je library op de stage zetten of wil je 9 nieuwe maken...

GenesisX

Legacy Member
9 uit m'n library via AS op m'n stage zetten, dan in een grid plaatsen (3 per rij), breedte aanpassen, ...

LunchBox

Legacy Member
de naam van je movieclip in de library speelt niet zozeer een rol, wat je moet doen is erop rechterclicken (in de library zelf dus) en kiezen voor "Linkage". Vervolgens vink je het veldje "export for actionscript" aan en geef je een Class-name in. (vergelijkbaar met de linkage-id's in as2) flash kiest automatisch als base class: "flash.display.MovieClip" dus dat mag je laten staan. Als je nu voor OK kiest krijg je volgende melding te zien: "a definition for this class could not be found in the classpath, so one will be automatically generated in the swf file upon export" - dit is in orde dus gewoon bevestigen.

Je kan nu in je code een array aanmaken met de 9 linkage-id's (class names) vanuit je library, en vervolgens door deze array loopen om de elementen op stage te plaatsen. je geeft hen best ook een eigen naam om makkelijker aan te spreken nadien.

Code:
var objCount:Number = 3; 
var linkageIDarray:Array = [ovalID,polystarID,squareID];
var shapeArray:Array = [];
  
function placeObjects():void {
	for(var i:int=0; i<objCount; i++){
		
		var tempObject:MovieClip = new linkageIDarray[i]();
		tempObject.name = "myShape"+(i+1);
		
		this.addChild(tempObject);
		
		shapeArray.push(tempObject);
		trace(tempObject.name);
	}
}
placeObjects();

kheb'n voorbeeldje online gezet ter referentie: http://www.showme.be/madefor/9lives/linkageIDinAS3.zip

GenesisX

Legacy Member
Sweet, dat moest ik hebben! Heel erg bedankt!

Dus de enige oplossing is met een array en alle namen van de MC's uit m'n library daarin invullen? 'k Had dat ook zo al geprobeerd, maar die "new ..." ging niet. Hij vond die methode maar niet, kon er niets uit opmaken, etc...

En "shapeArray.push" steekt die nieuwe movieclip in die andere, lege array? Wat is de reden daarvoor dan?

Merci :D Nu kan ik eindelijk verder!

GenesisX

Legacy Member
En nog een laatste klein apart vraagje (:D): hoe zorg ik ervoor dat m'n preloader werkt in het midden van m'n 'film' ? 'k Wil eerst zo een introstukje laten tonen en pas dan echt het interface-gedeelte laten laten.

screwless

Legacy Member
door x en y waarde gelijk te stellen aan width / 2 en height/2 van je stage en zorgen dat je "intro" int midden gecentreerd staat ?

GenesisX

Legacy Member
Neenee, 'k bedoelde het gesitueerd in de tijdslijn, niet op m'n stage.

Dus [wat tweenende tekst] > [preloader van de rest van m'n movie] > [rest van m'n movie]. Zoiets dus. 'k Vind wel op het internet hoe ik een swf kan inladen, maar niet hoe ik de rest van m'n film kan inladen als hij het in het begin al laadt.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan