Debugger

Freebaer

Grünschnabel
Hi,

es hat nicht lange gedauert bis ich mal wieder eine kleine Frage an euch habe.

Wenn ich auf Film testen gehe ---> Debuggen und mir alle Objekte oder Variablen Anzeigen lasse, bekomme ich ein Ausgabe fenster mit sehr viel Informationen. Diese Information sind echt super, wenn ich nur noch wüsste wie ich sie mir zum vorteil verschaffen könnte.

Bsp.: Ausgabe Objekte Auflisten

Code:
Text bearbeiten: Ziel="_level0.instance5" Variable= Sichtbar=true Text = 12\r"
     Text bearbeiten: Ziel="_level0.instance6" Variable= Sichtbar=true Text = 13\r"
     Text bearbeiten: Ziel="_level0.instance7" Variable= Sichtbar=true Text = 11\r"
     Text bearbeiten: Ziel="_level0.instance8" Variable= Sichtbar=true Text = 12\r"
     Text bearbeiten: Ziel="_level0.instance9" Variable= Sichtbar=true Text = 37\r"
     Text bearbeiten: Ziel="_level0.instance10" Variable= Sichtbar=true Text = 36\r"


Bsp.: Variablen Auflisten

Code:
Text bearbeiten: Ziel="_level0.instance48"
  	variable = null,
  	text = "17\r",
  	htmlText = "17\r",
  	html = false, textWidth = 4, textHeight = 6, maxChars = null,
  	borderColor = 0x000000, backgroundColor = 0xFFFFFF, textColor = 0x000000, border = false,
  	background = false, wordWrap = false, password = false, multiline = true,
  	selectable = false, scroll = 1, hscroll = 0, maxscroll = 1,
  	maxhscroll = 0, bottomScroll = 1,
  	type = "dynamic",
  	embedFonts = false, restrict = null, length = 3, tabIndex = undefined,
  	autoSize = "none",
  	mouseWheelEnabled = true, condenseWhite = false, styleSheet = undefined

Frage:

Wie kann ich auf level0.instance6" Variable= Sichtbar=true Text = 13\r" mit AS zugreifen? Bei dem bsp.: Variablen, steht: variable = null. Kann ich das irgend wie ändern? Ein script schreiben oder sonstiges?


Bin für jeden Lösungsansatz dankbar und hoffe das ich mich gut ausgedrückt habe.


MFG
Freebaer
 
Ok also auf level0.instance6" Variable= Sichtbar=true Text = 13\r" kann ich schon mal zugreifen.

Code:
_root.nr = instance6.text
     //_root.nr ist ein DynTextfeld was ich dann, 
    //mit dem instance namen in meinem fall instance6 
    //und seinen Eigenschaften text bestücke. Das macht man dann mit einem .text.

Ausgabe: 13

Nun hätte ich nur noch eine frage offen.

Kann man auch alle Objekte, die im moment zu verfügung stehen auslesen? Oder, nach bestimmten Namen oder Eigenschaften filtern?
Kann man mit hilfe vom Instance Namen, eine Schaltfläche/Button die/der in der Biblothek ist, drüber legen

MFG
Freebaer
 
Zuletzt bearbeitet:
Hallo!

ich frage mich Folgendes: Wenn du AS scripten möchtest, dann ist doch die Flash-Hilfe eigentlich eine gute erste Wahl, weil all die Fragen, die du gestellt hast, dünken mich ziemlich grundsätzlich und elementar. Ich antworte jetzt einfach mal so:

1. Mit Instanz-Namen gibst du einem MovieClip-Objekt oder einem TextFeld-Objekt (oder was auch immer) einen Namen, sprich Identifier. Mit diesem Namen und der Pfadangabe kannst du von nun an immer dieses Objekt ansprechen. Eine Instanz ist ein "Klon" eines vorgefertigten Objekts mit definierten Funktionen, Eigenschaften usw. , man nennt das eine Klasse. Ein MovieClip ist also ein "Klon", eine Instanz des Mutter-Objekts und erbt alle vordefinierten Eigenschaften.

2. Auf Eigenschaften greifst du über die Pfadangabe zu. _root ist die unterste Ebene, die Hauptzeitleiste des Films. Nun pfadet man einfach der selbst erstellten Hierarchie nach, z.B. ein Textfeld "Name" befindet sich im MovieClip "Input" und der wiederum ist auf einem Frame im Hauptfilm platziert, so spricht man z.B. die Eigenschaft "text" wie folgt an:

PHP:
_root.Input.Name.text;
//so verändert man die Eigenschaft
_root.Input.text = "Geben Sie hier ihren Namen ein";

3. Man kann per AS Clips aus der Bibliothek irgendwo einsetzen, duplizieren usw. Dafür gibt es die vordefinierten Funktionen der MovieClip-Klasse. Schau dir dazu doch auch mal die Flash-Hilfe an.

4. Da ich den Eindruck habe, dass du AS vor allem fürs Debugging willst, empfehle ich dir den exzessiven Gebrauch des trace-Befehls. Mit dem gibst du Werte an den Output von Flash aus. Aber auch dazu empfehle ich dir die Lektüre der Flash-Hilfe.

Naja, ich hoffe ich schiess hiermit nicht mit Kanonen auf Spatzen...

Gruss
 
Ich bedanke mich schon mal für die „nette“ Antwort auch wenn man etwas dumm gestellt wird.

ich frage mich Folgendes: Wenn du AS scripten möchtest, dann ist doch die Flash-Hilfe eigentlich eine gute erste Wahl, weil all die Fragen, die du gestellt hast, dünken mich ziemlich grundsätzlich und elementar.

Ich besitze auch ein Buch für AS:

Flash MX Action Script
-grundlegende Einführung in Action Script
-zahlreiche Anwendungsbeispiele

Vom Addison-Wesley Verlag


Und auch in der Flash Hilfe findet man nicht alles was man sucht. Und auch wenn es vielleicht in der Hilfe enthalten sein sollte, weis der ein oder andere auch nicht immer gleich das richtige Wort nach was er dann suchen muss um sein Problem zu lösen. Oder ihm fehlt einfach noch der Lösungsansatz für sein Problem, da er noch nicht die Logik hat, wie der ein oder andere hier im Forum. Daher gibt es auch User die fragen und auch wieder welche die Antworten. Dadurch lebt dieses Forum und ist auch so voll gestopft mit Wissen.

Aber ich habe die Hilfe durchsucht, daher hatte ich auch schon mein 1 Problem alleine lösen können. Auch im Forum, habe ich schon mehrere Suchbegriffe getätigt.

Das zu meiner Verteidigung :)

Wie ich merke kann man sich nicht so recht vorstellen, was ich gemeint habe. Daher habe ich die fla, auf das nötigste Dezimiert und hoffe, dadurch mehr erfolge zu erzielen.

Die fla beinhaltet eine Explosionszeichnung, diese Zeichnung möchte ich, sagen wir mal auslesen. Dort sind laufende Nummern zu sehen, mit denen ich dann im weiteren Versuch Arbeiten möchte.

Was meine ich mit damit weiter Arbeiten. Ich möchte zum Beispiel auf jede Zahl eine Schaltfläche legen, oder den Typ der instance ändern (Movie , Schaltfläche, Grafik).

Wie man sieht handelt es sich nicht nur um einen fall, sondern es sind dann um die 40. Daher auch meine frage ob man aus einer fla sich bestimmte Objekte ausgeben lassen kann in ein Array oder sonstiges. Mit bestimmte, meine ich so etwas wie nach Instance Namen zu Filtern oder sonstige Eigenschaften die eine Instance so haben kann.

Meine Idee war es, da ich die Zahlen schon ansprechen kann, Ihre Position ( Koordinaten ) in irgendeiner Form auszulesen. Oder wenn es geht, an die Instance ein Schaltfläche aus der Bibliothek hinten ran zu hängen. Nur bin ich bis dato leider daran gescheitert.

Sollten noch weitere fragen offen sein oder ich mich unverständlich ausgedrückt haben. Bitte schreibt es und ich werde dann Antworten.

Mit freundlichen Grüßen
Freebaer
 

Anhänge

Hallo,

ich wollte dich nicht irgendwie anmachen oder so, aber manchmal muss man den Leuten hier die trace-Funktion erklären, wenn du weisst, was ich meine...

Ich probier mal, auf deine Fragen zu antworten, obwohl ich nicht ganz alles verstanden habe...

Was meine ich mit damit weiter Arbeiten. Ich möchte zum Beispiel auf jede Zahl eine Schaltfläche legen, oder den Typ der instance ändern (Movie , Schaltfläche, Grafik).

Ich hoffe, ich verstehe dich nicht falsch, aber bis jetzt habe ich noch keine einzige Instanz in deinem Movie finden können, ich nehme mal an, dass die fla eher eine darstellerische Funktion hat. Du solltest diese Instanzen zuerst anlegen, d.h. jede Nummer in einen MovieClip konvertieren, oder aber einen MovieClip mit dynamischem Textfeld erstellen und dann per AS jeder Instanz dieses MovieClips eine Zahl zuweisen.
Den Typ einer Instanz ändern ist nicht nötig bzw. per ActionScript auch gar nicht möglich. Das Grafik- bzw. das Button-Symbol sind eigentlich bloss Varianten des MovieClips. Du kannst einen MC einfach MC sein lassen, ohne Frames usw, dann wird der sich verhalten wie eine Grafik. Wenn du auf einen MC eine onRelease-Funktion schreibst, dann kann man den MC auch als Button verwenden usw.


Wie man sieht handelt es sich nicht nur um einen fall, sondern es sind dann um die 40. Daher auch meine frage ob man aus einer fla sich bestimmte Objekte ausgeben lassen kann in ein Array oder sonstiges. Mit bestimmte, meine ich so etwas wie nach Instance Namen zu Filtern oder sonstige Eigenschaften die eine Instance so haben kann.

Auch hier bin ich mir nicht sicher, ob ich dich richtig verstanden habe. Ich nehme jetzt einfach mal an, dass es danach drei verschiedene Arten von Verhalten für die Zahlen bzw. deren Instanzen gibt. Diese Verhaltensmuster sollten sich jeweils auf Instanzen anwenden, die einem bestimmten Kriterium entsprechen, z.B. die Zahl ist grösser als 20 oder die x-Koordinate ist grösser als 50, oder die Instanz verfügt über den String "element" im Namen usw. Dafür gibt es verschiedene Methoden. Wenn du beispielsweise 40 Instanzen hast, die alle "element_x" heissen, dann kannst du alle Instanzen auf die Koordinaten überprüfen, indem du eine Schlaufe programmierst:

PHP:
for (i=0;i<41;i++) {
   if (_root["element_" add i]._y <= 50) {
       _root["element_" add i].onRelease = function () {
           trace (this);
      }
   }
}

Dieses kleine Script hier würde alle Instanzen, deren y-Koordinate kleiner als 50 ist, sozusagen in Schaltflächen umwandeln, die bei Klick den Pfad des jeweiligen Elements ausgeben.

Meine Idee war es, da ich die Zahlen schon ansprechen kann, Ihre Position ( Koordinaten ) in irgendeiner Form auszulesen. Oder wenn es geht, an die Instance ein Schaltfläche aus der Bibliothek hinten ran zu hängen. Nur bin ich bis dato leider daran gescheitert.

Ich versteh nicht, wie du die Zahlen ansprechen kannst, wenn du sie in statische Textfelder gesetzt hast. Die sind nämlich via AS NICHT ansprechbar, da reine Vektorgrafiken. Sollte das bloss in deiner Beispiel-fla der Fall sein, kannst du die Koordinaten der Zahlen bzw. der Textfelder mit den Eigenschaften _x bzw. _y abfragen. Beachte aber, dass du Textfelder nicht mit Events wie z.B. onRelease belegen kannst. Dafür müsstest du sie in MC's setzen...

Ich habe das Gefühl, dass wir hier aneinander vorbeireden. Du beschreibst dein Problem eben schon sehr pauschal. Könntest du nicht mal genau schildern, was den die Zahlen genau tun sollen und zwar in der Art:

Wenn man den Betrachter-Modus einschaltet sollte man beim RollOver aller Kabelbeschriftungen einen Beschreibtext rechts oben sehen können (HYPOTHETISCH).

Gruss
 
Zurück