Flashhilfe.de - Flash Community

mit for schleife MovieClips ansprechen [Flash 9]

Forum > ActionScript 3.0 > mit for schleife MovieClips ansprechen

 


AntwortenRegistrieren Seite1  

 17.08.2010, 19:04 
Beiträge: 251
Registriert: Mar 2006

mit for schleife MovieClips ansprechen
Hallo,

habe folgendes probiert:
ActionScript:
1
2
3
4
5
6
7
8
9
function ausblenden ()
   {
        for (var i:Number =0; i<1; i++)
        {
           
           stage["mc_"+i].alpha = 0;
        
        }
     }


bekomme folgende Fehlermeldung:

ActionScript:
1
2
3
ReferenceError: Error #1069: Eigenschaft mc_0 für flash.display.Stage nicht gefunden und es ist kein Standardwert vorhanden.
   at MethodInfo-7()
   at MethodInfo-5()


die MovieClips mc_0 - mc_2 existieren.
strukturart.com // kawumba.ch
 17.08.2010, 19:58Re1
Benutzerbild von springerFlashhilfe.de Moderator
Beiträge: 4906
Wohnort: zuhaus
Registriert: Apr 2004

hi,
versuch mal mit this anstelle von stage....
lieber chips essen und danach voller zweifel sein, als voller zweifel chips essen...
 17.08.2010, 20:20Re2
Benutzerbild von KingKhong
Beiträge: 159
Registriert: Apr 2005

oder: stage.getChildByName('mc_'+i).alpha = 0;
----------------------------------------------
www.flashdevelop.de
 
nicht sichtbar bei eingeloggten Mitgliedern
 17.08.2010, 20:54Re3
Beiträge: 251
Registriert: Mar 2006

Themenautor/in

leider nicht
ActionScript:
1
2
3
4
5
6
7
8
9
10
function ausblenden()
   {
        for (var i:Number = 0; i<2; i++)
        {
           trace(getChildByName("mc_"+i))
           stage.getChildByName("mc_"+i).alpha = 0
 
        }
     }
   


das sagt mir der compiler:
ActionScript:
1
2
3
4
null
TypeError: Error #1009: Der Zugriff auf eine Eigenschaft oder eine Methode eines null-Objektverweises ist nicht möglich.
   at MethodInfo-7()
   at MethodInfo-5()


die null sagt mir doch das mc_0 auf tiefe 0 liegt oder?

also das hier geht:
ActionScript:
1
2
3
4
5
6
7
function ausblenden()
   {
        mc_0.alpha = 0
        mc_1.alpha = 0
        
     }
   
strukturart.com // kawumba.ch
Geändert von strukturart am 17.08.10 um 21:08 Uhr

 17.08.2010, 21:39Re4
Benutzerbild von KingKhong
Beiträge: 159
Registriert: Apr 2005

dann ist der nicht auf stage, wenn der MovieClip nicht gefunden wurde bekomsmt du null, du musst natülich schauen, wo die liegen. springer hatte dir zuvor this vorgeschlagen.
ver such das mit this.getChildByName(....). Wenn du auf der Hauptzeitleiste arbeitest, ist die Zeitleiste this also kannst du auch einfach getChildByName(...) nehmen.

kannst auch mal this.mc_1.alpha = 0 machen du wirst sehen, dass es das gleiche ist wie nur mc_1.alpha = 0 ist;
----------------------------------------------
www.flashdevelop.de
Geändert von KingKhong am 17.08.10 um 21:43 Uhr

 17.08.2010, 22:11Re5
Beiträge: 251
Registriert: Mar 2006

Themenautor/in

erstelle so einen mc und bring ihn auf die bühne,
brauch ich um ihn per schleife anzusprechen noch so was
wie einen instanznamen oder genügt das so?

var mc_0:MovieClip = new MovieClip();
addChild(mc_0);
strukturart.com // kawumba.ch
 
nicht sichtbar bei eingeloggten Mitgliedern1&1 Webhosting
 17.08.2010, 23:13Re6
Benutzerbild von KingKhong
Beiträge: 159
Registriert: Apr 2005

nein brauchst du nicht, die werden automatisch benannt. Du kannst sie aber auch bennenen zb mc_0.name = "foo".

Aber für eine schleife empfehle ich einen namen zu nehmen, damit du ihn mit getChildByName wieder findest.

// Erstellen
for (var i:int = 0; i < 10, i++)
{
   var mc:MovieClip = new MovieClip();
   mc.name = "mc_" + i;
   addChild(mc);
}

// Auslesen

for (var i:int = 0; i < 10, i++)
{
   var mc:MovieClip = getChildByName("mc_"+i) as MovieClip;
   mc.alpha = 0;
}

Was auch geht ein extra Kontainer für die Clips ersellen und wenn dann dort nur die erstellten MovieClips rein kommen, kannst du die auch per Index ansprechen.
var container:MovieClip = new MovieClip();
addChild(container);

// Erstellen
for (var i:int = 0; i < 10; i++)
{
   container.addChild(new MovieClip());
}

// auslesen
for (var i:int = 0; i < container.numChildren; i++)
{
   var mc:MovieClip = container.getChildAt(i) as MovieClip;
   mc.alpha = 0;
}
----------------------------------------------
www.flashdevelop.de
 19.08.2010, 21:00Re7
Beiträge: 251
Registriert: Mar 2006

Themenautor/in

Danke für deine Hilfe.

Gibt es keine Möglichkeit MovieClips oder Loader direkt zu duplizieren?
Im Prinzip möchte ich folgendes mit Schleifen vereinfachen:
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
////dateinamen holen
var pfad:String="http://www.strukturart.com/_test/_pictures/";
var hallo:URLVariables = new URLVariables();
var request:URLRequest=new URLRequest("_pictures/read.php");
request.method=URLRequestMethod.POST;
var loader:URLLoader = new URLLoader();
loader.dataFormat=URLLoaderDataFormat.TEXT;
loader.load(request);
loader.addEventListener(Event.COMPLETE,geladen);
function geladen(e:Event)
{
 
     var box:Array = new Array ();
     box=e.target.data.split("##");
     
  ////bilder laden
   var container_img_0:Loader = new Loader();
     container_img_0.load(new URLRequest(pfad+box[0]));
     container_img_0.contentLoaderInfo.addEventListener(Event.COMPLETE,
     function (e:Event)
     {
 
        addChild(container_img_0);
 
     });
 
     var container_prw_0:Loader = new Loader();
     container_prw_0.load(new URLRequest(pfad+box[0]));
     container_prw_0.contentLoaderInfo.addEventListener(Event.COMPLETE,
     function (e:Event)
     {
        addChild(container_prw_0).x = 300
        container_prw_0.y = 300
        container_prw_0.scaleY = 0.25
        container_prw_0.scaleX = 0.25
     });
     ////buttons
   container_prw_0.buttonMode = true;
     container_prw_0.addEventListener (MouseEvent.CLICK,
     function (e:MouseEvent)
     {   
     container_img_0.visible = false
     });
}
strukturart.com // kawumba.ch
Geändert von strukturart am 19.08.10 um 21:01 Uhr

 20.08.2010, 13:44Re8
Benutzerbild von KingKhong
Beiträge: 159
Registriert: Apr 2005

Das was du lädst ist ein Bitmap Objekt. Daher kannst du ganz einfach, ein neues Bitmap erstellen mit den Bitmapdaten von deinem Original (container_img_0)

addChild(new Bitmap(Bitmap(container_img_0.content).bitmapData));
----------------------------------------------
www.flashdevelop.de
 
Themen
Ähnliche Beiträge zum Thema
mc mit schleife ansprechen [Flash 9] 07.11.2010 - strukturart
 

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.
Partner Webseiten: DesignerInAction.de   Designnation.de   Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   PSD-Tutorials.de   Tutorials.de

Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2012 Sebastian Wichmann - Flashhilfe.de