Hallo miteinander,
habe ein kleines problem...
1. Situation
------------
ich habe eine flash page, welche eine galerie beinhaltet. in dieser galerie gibt es verschiedene "events" (zb. streetparade, party 2. september, geburi von Mark, ...). wenn man auf einer diese events click öffnet sich die bildersammlung dazu und natürlich einige textinfos (zb. datum, ort, anzahl fotos, was auch immer), die untereinander aufgereiht werden (in verschiedenen, laufzeiterzeugten dynamischen textfeldern).
nun, es gibt events, die haben mehr infos, und welche die haben weniger. das heisst wenn ich von einer bildersammlung mit vielen text infos in eine mit weniger infos wechsle, werden dem entsprechend auch weniger textfelder erzeugt. nur dummerweise wurden die anderen ja nicht gelöscht, somit enstehen unnötige textfelder.
einige dieser textfelder haben noch mit attach eingebundene movieclips als hintergrund.
2. Problem
-------------
ich kann diese textfelder/movieclips nicht löschen
3. was ich versucht habe
-------------------------
habe mit trace überprüft ob, vorher und nachher der movieclip/das textfeld noch da ist. anscheinend ist er nachher weg, irgendwie aber auch nicht, naja, schaut euch einfach mal das hier an:
4. Code
------------
ActionScript:
//Ein MovieClip für folgenden code aus wenn darauf geklick wurde
this.aQueue[i].sTargetClip._parent.onRelease = function() {
//Hier werden/sollten die Textfelder und Movieclips gelöscht werden (falls welche schon vorhanden sind)
for(this.z=0; this.z<5; this.z++) {
//Die Textfelder und Movieclips liegen im gleichen movieclip, nur auf festschiedenen ebenen
//die MovieClips (hintergrund für titel) werden auf den ebenen 0-4 erstellt
//die Titel Textfelder werden auf den ebenen 5-9 ertellt und
//die info Textfelder werden auf den ebenen 10-15 ertellt
// (-> siehe weiter unten)
//Die ebenen werden abgetastet und die adressierung wird in den string gespeichert
this.tempClipString = " "+_root.addInfos.addInfosIn.textClip.getInstanceAtDepth(this.z);
this.tempTitleString = " "+_root.addInfos.addInfosIn.textClip.getInstanceAtDepth(this.z+5);
this.tempFieldString = " "+_root.addInfos.addInfosIn.textClip.getInstanceAtDepth(this.z+10);
//das "alles mitkommt" (_level0.blbl.basdlkf.ldskf) wird der nötig teil bis zum Instanzname gekürzt
this.tempClipString = this.tempClipString.substr(this.tempClipString.lastIndexOf(".")+1);
this.tempTitleString = this.tempTitleString.substr(this.tempTitleString.lastIndexOf(".")+1);
this.tempFieldString = this.tempFieldString.substr(this.tempFieldString.lastIndexOf(".")+1);
//überprüfen ob alles in Ordnung gekürzt wurde
trace(this.z+".Durchgang: tempClipString: "+this.tempClipString);
trace(this.z+".Durchgang: tempTitleString: "+this.tempTitleString);
trace(this.z+".Durchgang: tempFieldString: "+this.tempFieldString);
//kleiner test ob die Instanzen vor dem löschen existieren
trace("Test nachher: " + _root.addInfos.addInfosIn.textClip[this.tempClipString]._name);
trace("Test nachher: " + _root.addInfos.addInfosIn.textClip[this.tempTitleString]._name);
trace("Test nachher: " + _root.addInfos.addInfosIn.textClip[this.tempFieldString]._name);
//löschen der Instanzen
_root.addInfos.addInfosIn.textClip[this.tempClipString].removeMovieClip();
_root.addInfos.addInfosIn.textClip[this.tempTitleString].removeTextField();
_root.addInfos.addInfosIn.textClip[this.tempFieldString].removeTextField();
//kleiner test ob die Instanzen gelöscht wurden
trace("Test nachher: " + _root.addInfos.addInfosIn.textClip[this.tempClipString]._name);
trace("Test nachher: " + _root.addInfos.addInfosIn.textClip[this.tempTitleString]._name);
trace("Test nachher: " + _root.addInfos.addInfosIn.textClip[this.tempFieldString]._name);
}
//ermittelt die xml Nodes Name und gibt sie mittels array zurück
var nodeNames:Array = eval("rowObj"+this.ID).getNodeNames();
var textFieldHeight = 0;
for (var a = 0; a<nodeNames.length; a++) {
//Da die Text Infos untereinander sind muss ermittelt werden, wie hoch die sind und ab wo das nächste feld gesetzt wird
//irelevant, kann ignoriert werden
if (_root.addInfos.addInfosIn.textClip[nodeNames[a-1]+"Field"]._height == undefined) {
textFieldHeight = 0;
} else {
textFieldHeight = textFieldHeight+_root.addInfos.addInfosIn.textClip[nodeNames[a-1]+"Field"]._height+10;
}
//Hintergrund des Titels wird auf de bühne kopiert
_root.addInfos.addInfosIn.textClip.attachMovie("addInfosTitle", nodeNames[a]+"Back", a);
//Hintergrund wird zurechtgesetzt
_root.addInfos.addInfosIn.textClip[nodeNames[a]+"Back"]._x = 0;
_root.addInfos.addInfosIn.textClip[nodeNames[a]+"Back"]._y = textFieldHeight;
//Titel und dazugehörender Text werden erstellt
_root.addInfos.addInfosIn.textClip.createTextField(nodeNames[a]+"Title", a+5, 0, textFieldHeight-1, 115, 10);
_root.addInfos.addInfosIn.textClip.createTextField(nodeNames[a]+"Field", a+10, 0, textFieldHeight+11, 115, 10);
//Textfeldereigenschaften und textformat werden angepasst
//für Titel
with (_root.addInfos.addInfosIn.textClip[nodeNames[a]+"Title"]) {
autoSize = "left";
background = false;
//backgroundColor = "0x000000";
border = false;
//borderColor = "0x550000";
condenseWhite = false;
embedFonts = true;
type = "dynamic";
htmlText = NULL;
html = false;
maxChar = 200;
multiline = false;
password = false;
selectable = false;
tabEnabled = false;
textColor = "0x000000";
wordWrap = false;
restrict = NULL;
//variable
setNewTextFormat(titleFormatField);
text = eval("rowObj"+this.ID).getFormatedTitle(nodeNames[a]);
}
//für Text
with (_root.addInfos.addInfosIn.textClip[nodeNames[a]+"Field"]) {
autoSize = "left";
background = false;
//backgroundColor = "0xFF0000";
border = false;
//borderColor = "0xff0000";
condenseWhite = false;
embedFonts = true;
type = "dynamic";
htmlText = NULL;
html = false;
maxChar = 200;
multiline = true;
password = false;
selectable = false;
tabEnabled = false;
textColor = "0x000000";
wordWrap = true;
restrict = NULL;//"&¡¢£¤¥¦§¨©ª«¬*®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ";
setNewTextFormat(textFormatField);
text = eval("rowObj"+this.ID).getTextInfos(nodeNames[a]);
trace("checkForUnicode: " + eval("rowObj"+this.ID).getTextInfos(nodeNames[a]));
}
}
}
5. Testergebnis (trace)
-------------------------
ActionScript:
0.Durchgang: tempClipString: undefined
0.Durchgang: tempTitleString: undefined
0.Durchgang: tempFieldString: undefined
Test vorher: undefined
Test vorher: undefined
Test vorher: undefined
Test nachher: undefined
//Beim ersten Mal clicken
Test nachher: undefined
Test nachher: undefined
1.Durchgang: tempClipString: undefined
1.Durchgang: tempTitleString: undefined
1.Durchgang: tempFieldString: undefined
Test vorher: undefined
Test vorher: undefined
Test vorher: undefined
Test nachher: undefined
Test nachher: undefined
Test nachher: undefined
2.Durchgang: tempClipString: undefined
2.Durchgang: tempTitleString: undefined
2.Durchgang: tempFieldString: undefined
Test vorher: undefined
Test vorher: undefined
Test vorher: undefined
Test nachher: undefined
Test nachher: undefined
Test nachher: undefined
3.Durchgang: tempClipString: undefined
3.Durchgang: tempTitleString: undefined
3.Durchgang: tempFieldString: undefined
Test vorher: undefined
Test vorher: undefined
Test vorher: undefined
Test nachher: undefined
Test nachher: undefined
Test nachher: undefined
4.Durchgang: tempClipString: undefined
4.Durchgang: tempTitleString: undefined
4.Durchgang: tempFieldString: undefined
Test vorher: undefined
Test vorher: undefined
Test vorher: undefined
Test nachher: undefined
Test nachher: undefined
Test nachher: undefined
//beim zweiten Mal clicken
0.Durchgang: tempClipString: idBack
0.Durchgang: tempTitleString: idTitle
0.Durchgang: tempFieldString: idField
Test vorher: idBack
Test vorher: idTitle
Test vorher: idField
Test nachher: undefined
Test nachher: undefined
Test nachher: undefined
1.Durchgang: tempClipString: artistsBack
1.Durchgang: tempTitleString: artistsTitle
1.Durchgang: tempFieldString: artistsField
Test vorher: artistsBack
Test vorher: artistsTitle
Test vorher: artistsField
Test nachher: undefined
Test nachher: undefined
Test nachher: undefined
2.Durchgang: tempClipString: locBack
2.Durchgang: tempTitleString: locTitle
2.Durchgang: tempFieldString: locField
Test vorher: locBack
Test vorher: locTitle
Test vorher: locField
Test nachher: undefined
Test nachher: undefined
Test nachher: undefined
3.Durchgang: tempClipString: agBack
3.Durchgang: tempTitleString: agTitle
3.Durchgang: tempFieldString: agField
Test vorher: agBack
Test vorher: agTitle
Test vorher: agField
Test nachher: undefined
Test nachher: undefined
Test nachher: undefined
4.Durchgang: tempClipString: undefined
4.Durchgang: tempTitleString: undefined
4.Durchgang: tempFieldString: undefined
Test vorher: undefined
Test vorher: undefined
Test vorher: undefined
Test nachher: undefined
Test nachher: undefined
Test nachher: undefined
6. Bemerkung
-------------------
bitte kritisiert mein code nicht, ich weiss es gehe auch ein bisschen besser und professioneller, aber ich will das projekt mal fertig bringen, so das alles geht und dann verbessere ich meinen code, ich bin schon über 6 monate an diesem projekt, möchte es endlich beenden.