mit for schleife MovieClips ansprechen [Flash 9]
| 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:58 | Re1 | 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:20 | Re2 | 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:54 | Re3 | 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:39 | Re4 | 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:11 | Re5 | 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 Mitgliedern | 
|
| 17.08.2010, 23:13 | Re6 | 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:00 | Re7 | 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:44 | Re8 | 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 | 09.04.2012 - UKJoerg 07.11.2010 - strukturart 31.03.2011 - denny_r 06.10.2009 - Michi1986 |
|
Flashhilfe.de Flash Platform Tipps & Tutorials Flash Platform Andere Programmiersprachen Jobangebote Diskussionen
Flashhilfe News 
Regeln & Bedingungen
|