Buttonroblem: Funktion 2x auf Bühne

Orphelina

Erfahrenes Mitglied
Buttonroblem: Funktion 2x auf Bühne Button aber nur 1x da

Hallo,

ich habe ein Bild in einen MC geladen und diesem eine onPress- Funktion zugewiesen, und ein RollOver, weil sonst die Maus ein Pfeil geblieben wäre.
Jedenfalls tut das wunderbar.
Aber jetzt hab ich auf der Position 0/0 ein undefined stehn, das die gleiche Funktion hat wie mein onPress- Button?! Und ich seh und finde einfach den Fehler nicht.
Das ist doch sehr merkwürdig.

Hier mal aus Auszug aus meine Code:
PHP:
import mx.controls.*;

class meineKlasse{
	
	var text;
	var inhalt;
	
	var aNode;
	var bNode;
	
	var myNew_height_top:Number;
	
	function meineKlasse(){}
	
	function createTemplate(inhalt){
		
		[...]
		
		_root.createClassObject(Label, "Bild", 5);
		_root.Bild.text = "";
		_root.Bild._x = -200;
		_root.Bild._y = -200;
		_root.createClassObject(TextArea, "Bildunterschrift", 6);
		_root.Bildunterschrift.text = "";
		_root.Bildunterschrift._x = -200;
		_root.Bildunterschrift._y = -200;
		_root.createClassObject(Label, "Bild1", 7006);
		_root.Bild1.text = "";
		_root.Bild1.setSize(0,0);
		_root.createClassObject(TextArea, "Bildunterschrift1", 7010);
		_root.Bildunterschrift1.text = "";
		_root.createClassObject(Label, "Bild2", 7007);
		_root.Bild2.setSize(0,0);
		_root.Bild2.text = "";
		_root.createClassObject(TextArea, "Bildunterschrift2", 7011);
		_root.Bildunterschrift2.text = "";
		_root.createClassObject(Label, "Bild3", 7008);
		_root.Bild3.text = "";
		_root.Bild3.setSize(0,0);
		_root.createClassObject(TextArea, "Bildunterschrift3", 7012);
		_root.Bildunterschrift3.text = "";
		_root.createClassObject(Label, "Bild4", 7009);
		_root.Bild4.setSize(0,0);
		_root.Bild4.text = "";
		_root.createClassObject(TextArea, "Bildunterschrift4", 7013);
		_root.Bildunterschrift4.text = "";
		
		_root.createClassObject(Label, "Close", 7003);
		
		_root.Bild1.createEmptyMovieClip("img1", 1);
		_root.Bild2.createEmptyMovieClip("img2", 1);
		_root.Bild3.createEmptyMovieClip("img3", 1);
		_root.Bild4.createEmptyMovieClip("img4", 1);
		
		
		this.inhalt = inhalt;
	for(aNode = inhalt.firstChild.firstChild; aNode != null; aNode=aNode.nextSibling){
			
			var text_top:String;
			var text_bottom:String;
			var height_top:Number;	
			
			//Hier wird der Button erstellt der Probleme macht
			_root["Close"].createEmptyMovieClip("img6", 11);
			_root["Close"]["img6"].loadMovie("pics/close.jpg");
			_root["Close"]["img6"]._x = 155;
			_root["Close"]["img6"]._y = 104;
			
			_root["Close"].onPress = function(){
				removeMovieClip(img3);
				removeMovieClip(img);
				removeMovieClip("Close");
				removeMovieClip("Bild1");
				removeMovieClip("Bild2");
				removeMovieClip("Bild3");
				removeMovieClip("Bild4");
			}
			
			_root["Close"].onRollOver = function(){
				_root["Close"].useHandCursor =  true;
				
			}
			
			[...]
 
Zuletzt bearbeitet:
Hallo,
warum schreibst du" _root["Close"]" ? Wenn dann _root[Close].. und Close vor der for- Schleife declarieren.

var Close = "close"+nextSibling

oder wofür benutzt du sonst die Schleife?

Gruß
 
du musst natürlich in der for schleife declarieren ;)
PHP:
for (i=0; i<anzahl; i++) { 

           var Close = "close"+i //!!
        
            _root[Close].createEmptyMovieClip("img6", 11);
}
 
das kannst auch in ne for-Schleife haun ;)

PHP:
var anzahl =  //declarieren!
_root[Close].onRelease = function(){  //onRelease tuts übrigens auch ;)
for(i=1;i<anzahl; i++){
var clip = "Bild"+i
                removeMovieClip(clip);
            } 
}
 
Hallo,

ne die for- Schleife ist eigentlich dazu da, andere Inhalte aus XML Dateien in andere Textfelder zu schreiben.
Der Button ist nur einmal da und soll auch nur einmal da sein.
Das ist ja das Problem, ich weiss nicht wie er dazu kommt ihn zweimal auf die Bühne zu packen... Ich will ihn ja nur einmal...

Gruß
 
... wenn der Button nur einmal erstellt werden soll: Warum steht das hier:
PHP:
_root["Close"].createEmptyMovieClip("img6", 11);
 _root["Close"]["img6"].loadMovie("pics/close.jpg");
sowie sämtliche Mousehandler in einer for-Schleife?

Gruß
.
 
Hallo,

weil ich da dann noch Textfelder habe, die ich aus XML Dateien fülle, und das eben mit dieser for- Schleife... Selbst wenn ich den Button und sein Event ausserhalb der Schleife schreib, hab ich immer noch das Problem, ein leeres Textfeld auf 0/0 zu haben, das die gleiche Funktion wie mein Button hat..

Gruß
 
Kannst du dein Script mal besser dokumentieren (Textfield welches Probleme macht)und dein Vorhaben ein wenig besser schildern? Wenn dein Textfield leer sein sollte, könnte es am Pfad liegen, es wird mit "" überschrieben oder aber die funktion wird nicht aufgerufen! Warum der Button in der For-Schleife ist versteh ich auch nicht..
Die Trace Funktion solltest du auch nicht ausser acht lassen!

Gruß
 
Hallo,

mir geht es hier wirklich nur um diesen Button "Close"! Und auch wenn ich ihn ausserhalb der Schleife mache, ändert das leider gar nichts...
Also, mein Button Close funktioniert ja auch prima bis auf die Tatsache dass auf meiner Bühne zusätzlich "undefined" steht- und dieses Wort besitzt die gleichen Funktionen wie mein Close Button (onPress und onRollOver) und das versteh ich nicht und DAS will ich wegebkommen... Lasst doch mal die for Schleife weg und Textfelder weil die funktionieren ja auch...

Gruß
 
Mal ne andere Frage:
PHP:
_root.createClassObject(Label, "Close", 7003);
Warum nimmst Du eigentlich ein Label als Button (mich wundert sowieso, dass createEmptyMovieClip() auf einer Label-Instanz funktioniert - wird zwar von MovieClip abgeleitet sein, aber ich halte es für riskant, so an den mitgelieferten Komponenten rumzudoktorn ;) )?

Alles in allem ist der Code (in meinen Augen, verzeih wenn ich Dir zu nahe trete) so umständlich aufgebaut, dass man ohne die komplette .fla + Klassen zu haben, nur Mutmaßungen über die Fehlerquelle anstellen kann (wobei die Komponenten eh nicht mein Ding sind).

Gruß
.
 
Zurück