Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 25-03-2006, 17:17   #1 (permalink)
Neuer User
 
Registriert seit: Mar 2006
Beiträge: 139
AS auf mehrere Instanzen legen

hey!

ich habe eine doch größere anzahl von movieclip-instanzen auf der bühne, denen ich nun allen den gleichen AS-code drauflegen will.
versucht hab ich das bibliothekselement mit AS zu belegen und gehofft, dass dann alle seine instanzen dieses annehmen, sozusagen vererbt wird, leider war dies nicht der fall. und alle markieren und den code reinkopieren is leider auch nicht.

darum meine frage nun an euch, wie man da am besten vorgeht

hatte schon überlegt, einfach den ganzen code in eine funktion in der hauptzeitleiste zu stecken, nur müsste ich dann checken und mit der funktion übergeben, welcher movieclip gedrückt worden ist. und wie ich das machen soll, übersteigt mein anfängerwissen...

hoffe das ist einigermaßen verständlich formuliert

merci for help,
m
skamarkus ist offline   Mit Zitat antworten
Alt 25-03-2006, 17:28   #2 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
hi .

Das hört sich an, als würdest du die MoviClips dynamisch erstellen, richtig?
.. dann hast du vermutlich eine for schleife, richtig?

dann kannst du in dieser For-Schleife den mcs Funktionen zuweisen:

Bsp
ActionScript:
  1. for(var i=0; i<10; i++) {
  2.   var mc = container.attachMovieClip("biboclip", "mx"+i, i);
  3.   mc.onRelease = function () {
  4.     trace(this); //gibt die Instanz aus
  5.   }
  6. }
pape ist offline   Mit Zitat antworten
Alt 25-03-2006, 17:39   #3 (permalink)
Neuer User
 
Registriert seit: Mar 2006
Beiträge: 139
ich wusste ich habe eine info vergessen

nein, ich habe sie nicht dynamisch erstellt, da es sich um punkte auf einer stadtplankarte handeln (wüsste nicht wie man da das dynamisch machen könnte)

also im nachhinein den AS-code jedem hinzufügen ohne das händisch einzeln zu machen, nur wie?
skamarkus ist offline   Mit Zitat antworten
Alt 25-03-2006, 17:48   #4 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
warst du so schlau die ganzen mcs in einen eigens dafür vorgesehenen Container zu packen, so kannst du alle Instanzen des Containers so wieder finden bzw. auch mit Funktionen belegen:

ActionScript:
  1. for(var i in Container) {
  2.   trace(Container[i]);
  3.   Container[i].onRelease=function() {
  4.     trace(this); //gibt die Instanz aus
  5.   }
  6. }

Wenn du das nicht getan hast, aber dafür gesorgt hast, dass alle Mc-Namen einem bestimmten muster entsprechen (z.b. mc1, mc2, mc3,...,mcn), dann kannst du das obrige script in verbindung mit einer If-Abfrage nutzen
pape ist offline   Mit Zitat antworten
Alt 25-03-2006, 18:11   #5 (permalink)
Neuer User
 
Registriert seit: Mar 2006
Beiträge: 139
ich bin also ein echter noob

summary:
ich habe ein xml mit zig objekten erstellt, die namensgleich mit den MCs auf der bühne sind...
nun will ich wenn man auf eines dieser Symbole klickt, die Objekt-Daten aus dem XML für dieses Objekt auslesen und in Dyn.Textfelder ausgeben. das funktioniert auch soweit in einem Test-File...

der Code der auf den MC-Punkten liegt:

Code:
on(release)
{
	var mcobjekt = this._name;
	var xmlTest:XML = new XML();
	xmlTest.ignoreWhite = true;
	xmlTest.onLoad = function(bSuccess:Boolean):Void {
	if(bSuccess) {
		var xnRoot:XMLNode = this.firstChild;
		var xnObjekt:XMLNode;
		var xnName:XMLNode;
		var xnAdresse1:XMLNode;
		var xnAdresse2:XMLNode;
		var xnURL:XMLNode;
		var xnEmail:XMLNode;
		for (var i:Number = 0; i < xnRoot.childNodes.length; i++) {
		xnObjekt = xnRoot.childNodes[i];
		xnName = xnObjekt.firstChild;
		xnAdresse1 = xnName.nextSibling;
		xnAdresse2 = xnAdresse1.nextSibling;
		xnTelefon = xnAdresse2.nextSibling;
		xnOffen = xnTelefon.nextSibling;
		//trace(xnObjekt.attributes.nummer);
			if (xnObjekt.attributes.nummer == mcobjekt) {
				_root.tOutput_txt.text = xnAdresse1.firstChild.nodeValue;
				trace (xnTelefon.firstChild.nodeValue);
				break;
			}
		}
	}
};
xmlTest.load("test.xml");}
Nun geht es eben darum den Code zu implementieren (wo noch die IF-Abfrage richtig gemacht gehört) und ich will den eben nicht auf ~250 nicht-dynamisch erstellte Objekte händisch einzeln legen...

das mit dem Container entzieht sich meiner Kenntnis, kenn Container nur bei CSS in Verbindung mit den DIVs, seems to be the same? Also ein MC wo alle anderen drinnen sind?

weiters bin ich unschlüssig darüber wenn ich so eine funktion bastel mit einer for-schleife um den MCs funktionen zuzuweisen wie du das gemacht hast, muss das quasi immer immer passieren (on(enterFrame)) oder zu Beginn einmal und die MCs "merken" sich das...

merci für die ausgiebigen Antworten.
skamarkus ist offline   Mit Zitat antworten
Alt 25-03-2006, 18:35   #6 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Hallo!

Container soll nur heißen, dass alle MCs in einem unter- bzw. übergeordneten MC liegen.
Kannst du auch nachträglich machen, indem du alle markierst und dann F8 drückst.
Jetzt nur noch den Instanznamen "container" vergeben und mit for (var i in container) werden alle Objekte in diesem MC nacheinander angesprochen (siehe Script oben).
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 25-03-2006, 19:07   #7 (permalink)
Neuer User
 
Registriert seit: Mar 2006
Beiträge: 139
ok container packen schaff ich also auch noch

fragt sich nur diese FOR schleife für den container.... wieoft muss ich die aufrufen? once zu beginn oder fortlaufend? fortlaufend wäre dann sehr prozessintensiv?

//edit: merci, hat hingehaun soweit ich das mal im testfile mit 2 mcs im container beurteilen kann... hoffentlich bremsen 250 mcs das nicht aus

Geändert von skamarkus (25-03-2006 um 20:17 Uhr)
skamarkus ist offline   Mit Zitat antworten
Alt 27-03-2006, 16:31   #8 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
Zitat:
Zitat von skamarkus
fragt sich nur diese FOR schleife für den container.... wieoft muss ich die aufrufen? once zu beginn oder fortlaufend?
Einmal. Danach sind die entsprechenden Funktionen ja auf die Instanzen gelegt. Diese mehrmals zu überschreiben zum einen überflüssig und wie du schon sagtest prozessintensiv.
pape ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 15:06 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele