-
13-11-2008, 21:49 #1Approved 9liver
- Registered
- 14/02/04
- Location
- -
- Posts
- 8,004
- iTrader
- 24 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/37
Unieke MovieClips aanmaken in een for-lus
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. }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?Code:1. for each (var s:String in objArr) { 2. object = new ( s ); 3. addChild(object); 4. }
Heb het al op véél verschillende manieren geprobeerd, maar ik doe zeker iets mis? Als er iemand kan helpen aub, 't is dringend!
no votes
-
-
14-11-2008, 14:43 #2Approved 9liver
- Registered
- 14/02/04
- Location
- -
- Posts
- 8,004
- iTrader
- 24 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/37
Niemand?
no votes
-
14-11-2008, 17:15 #3Member
- Registered
- 07/07/03
- Location
- gent
- Posts
- 201
- iTrader
- 3 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/1
ksnap nie echt wat je wil doen, wil je 9 movieclips uit je library op de stage zetten of wil je 9 nieuwe maken...
no votes
-
14-11-2008, 23:19 #4Approved 9liver
- Registered
- 14/02/04
- Location
- -
- Posts
- 8,004
- iTrader
- 24 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/37
9 uit m'n library via AS op m'n stage zetten, dan in een grid plaatsen (3 per rij), breedte aanpassen, ...
no votes
-
15-11-2008, 02:06 #5Member
- Registered
- 18/07/02
- Location
- Deurne
- Posts
- 3,854
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 14/14
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.
kheb'n voorbeeldje online gezet ter referentie: http://www.showme.be/madefor/9lives/linkageIDinAS3.zipCode: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();no votes
-
15-11-2008, 15:36 #6Approved 9liver
- Registered
- 14/02/04
- Location
- -
- Posts
- 8,004
- iTrader
- 24 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/37
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
Nu kan ik eindelijk verder!
no votes
-
15-11-2008, 17:37 #7Approved 9liver
- Registered
- 14/02/04
- Location
- -
- Posts
- 8,004
- iTrader
- 24 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/37
En nog een laatste klein apart vraagje (
): 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.
no votes
-
17-11-2008, 17:58 #8
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 ?
mRz_no votes
-
18-11-2008, 00:34 #9Approved 9liver
- Registered
- 14/02/04
- Location
- -
- Posts
- 8,004
- iTrader
- 24 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/37
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.no votes
