1. #1

    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. }
    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!
    no votes  

  2. #2

    Registered
    14/02/04
    Location
    -
    Posts
    8,004
    iTrader
    24 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/37
    Niemand?
    no votes  

  3. #3
    Dr_Evil's Avatar
    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...
    All the above are LIES

    check my flashden items here
    no votes  

  4. #4

    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  

  5. #5
    LunchBox's Avatar
    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.

    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
    Last edited by LunchBox; 15-11-2008 at 04:09. Reason: 2x nadien
    no votes  

  6. #6

    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  

  7. #7

    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  

  8. #8
    screwless's Avatar
    Registered
    20/08/04
    Posts
    140
    iTrader
    0
    Mentioned
    0 Post(s)
    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  

  9. #9

    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  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in