| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| scriptvermurkser Registriert seit: Apr 2003
Beiträge: 269
| Wert false zuweisen
Hallo Leute! Ich hab ma ne Frage. Und zwar habe ich ein Script im frame, da sage ich am Anfang: RollOutAktiv2 = true n = 2 MovieClip.prototype.myBildWeg = function(){ if("RollOutAktiv"+n == false){ Thema.onEnterFrame = function() { if(Thema.MaskeRechts._width <= 2){ Thema.MaskeHoch._height -= Speed; if(Thema.MaskeHoch._height<=2){ Geklickt.myRelease(); delete Thema; delete Geklickt; delete onEnterFrame; } else Thema.MaskeRechts._width -= Speed; } } } } wenn ich einen Button klicke passiert folgendes: Arbeit.onRelease = function(){ RollOutAktiv2 = false this.gotoAndStop(3); Thema.myBildWeg(); Geklickt = this frame = "Arbeit" } Nun dachte ich, mein myBildWeg(); wird aufgerufen, weil ja RollOutAktiv2=false ist, aber "RollOutAktiv"+n hat ja den Wert RollOutAktiv2 und nicht den Wert false. Wie bekomme ich es hin, dass "RollOutAktiv"+n nach dem Klick den Wert false hat? Ich benutze das n, weil RollOutAktiv2 auf den nächsten frames dann RollOutAktiv3,4,5... heißt. Ich komme grad nicht weiter, hab vielleicht einen Knoten im Hirn, wäre nett, wenn mir wer weiter helfen kann. Grüßchen swky |
| | |
| | #3 (permalink) |
| Definitionssache Registriert seit: Apr 2003 Ort: Braunschweig
Beiträge: 2.433
|
oder so: "RollOutAktiv"+n == false sollte eval ("RollOutAktiv" + n) == false heissen.
__________________ .................................................. ........................... Jetzt kostenlos runterladen! KALENDER 2007 mit folgenden Angaben: Jahr, Monat, Tag, Wochentag, Kalenderwoche, Feiertag, Wochenende (Sa. / So.), Schulferien, Bundesland. http://www.ocean-internet.de Software Entwicklung: PHP, MySQL, Perl, Flash, Visual Basic .Net, C#, ... Lösungen. |
| | |
| | #4 (permalink) |
| scriptvermurkser Registriert seit: Apr 2003
Beiträge: 269
|
@ agedoubleju: wieso this? funzioniert auch nicht, und mit ohne this gibt er wieder RollOutAktiv2 aus. @ dburucu: jup, das geht. das was ich will, funzt dann zwar immer noch nicht, aber immerhin gibt er schon mal false aus, damit bin ich einen Schritt weiter und kann den nächsten Fehler suchen :-) Also Desten Bank! |
| | |
| | #5 (permalink) |
| Definitionssache Registriert seit: Apr 2003 Ort: Braunschweig
Beiträge: 2.433
|
agedoubleju's Lösung ist aber eigentlich der bessere, sollte auch gehen.
__________________ .................................................. ........................... Jetzt kostenlos runterladen! KALENDER 2007 mit folgenden Angaben: Jahr, Monat, Tag, Wochentag, Kalenderwoche, Feiertag, Wochenende (Sa. / So.), Schulferien, Bundesland. http://www.ocean-internet.de Software Entwicklung: PHP, MySQL, Perl, Flash, Visual Basic .Net, C#, ... Lösungen. |
| | |
| | #6 (permalink) |
| Neuer User Registriert seit: Jun 2001 Ort: Stuttgart
Beiträge: 6.415
|
oh schrecklich. du solltest dir erstmal im klaren sein wo deine befehle ausgeführt werden- du hast ziemlich komische gültigkeitsbereiche. definierst du innerhalb einer funktion eine variable nicht explizit per "var" oder "this.var" so wird die variable in der zeitleiste abgelegt wo die fuktion definiert wurde. klar das das oftmals funktioniert weil jeder seine funktionen im root ablegt- aber irgendwann gehts auch mal schief! und was ist das? RollOutAktiv2 gehts das etwas weiter mit RollOutAktiv3 RollOutAktiv4 usw?! wenn du schon protypes verwenden willst dann nutz sie doch auch. brauchst du die funktion überhaupt mehrmals?schonmal gut! also wo legst du deine rollout variable an und wie? richtig per var inerhalb des prototypes. Was dann passiert ist das deine variable nun auf dem angesprochenen MC liegt-so wie es sein soll->jeder soll sein süppchen kochen und nicht alles auf den root werfen. (ein this innerhalb verweist auf deinen angesprochenen mc, versuch mal diese eigenschaft auszunutzen) deluxe |
| | |
| | #7 (permalink) |
| scriptvermurkser Registriert seit: Apr 2003
Beiträge: 269
|
@Deluxe: Wenn du dir schon die Zeit nimmst, auf einen Beitrag zu antworten (was im Prinzip ja ganz nett ist), dann ist zwar etwas Kritik schon o.k., aber etwas hilfreicher und konstruktiver wäre schon nicht schlecht. "oh schrecklich." <- schon mal sehr konstruktiv was meinst du mit Gültigkeitsbereiche? Variablen: Freue mich über Erklärungen. var macht locale Variablen und beschränkt diese auf die entsprechende Zeitleiste, aber ich dachte, das wären sie ohne var auch? Was sind die ohne var dann? Und was ist der Unterschied zu this.var? "und was ist das? RollOutAktiv2" <- versteh die Frage nicht, wonach siehts denn aus? "gehts das etwas weiter mit RollOutAktiv3, RollOutAktiv4, usw?!" <- röööchtöööch! Sagte ich ja. Wieso nutze ich mein Prototype nicht? "also wo legst du deine rollout variable an und wie? richtig per var inerhalb des prototypes." <- versteh ich gar nich, bitte erklären. "(ein this innerhalb verweist auf deinen angesprochenen mc, versuch mal diese eigenschaft auszunutzen)" <- das ist doch mal konstruktiv. Im Übrigen hab ich nicht umsonst meinen Untertitel. Ich fang grad mal an meine ersten Scripte zu schreiben und denke meistens hinterher, dass sie recht konfus sind und man sie sicher normalerweise anders geschrieben hätte, aber da ich selber ausprobieren muss und niemand hier ist, der mir sacht wie mans ordentlich macht, kommen dann öfters mal ein paar komische Sachen raus, aber man kann ja nur draus lernen. Und prototype benutze ich sowieso erst das erste mal und muss es erst mal richtig verstehen lernen. Und ich brauche die funktion mehr mals. So. Warte auf Antwort. |
| | |
| | #8 (permalink) |
| Neuer User Registriert seit: Jun 2001 Ort: Stuttgart
Beiträge: 6.415
|
gültigkeitsbereich bzw scope. eine variable die du per var deklarierst bzw gleich initialisierst ist nur solange existent wie die funktion, die sie erschaffen hat, läuft. eine variable die du explizit per this auf den aktuellen scope verweist, wird dort abgelegt-"normale" funktionen, also keine methoden einer klasse, haben keinen eigenes objekt, ein this verweist auf die zeitleiste wo sie deklariert wurden initialisierst du deine variable eifnach per variable="hallo" so läuft das wie folgt ab achtung beispiel: ActionScript:
r->immernoch vorhanden da zeitleiste noch vorhanden a im niemalsland b noch vorhanden aber im root c auch da aber im mc "movie" (referenz dahin in r abgelegt) __ viele machen den fehler sehen überall prototype und denken wow so will ich das auch machen dabei hätte eine winzig kleine funktion gereicht. stattdessen wurden alle movieclips mit dieser funktion überladen (mußt du dir nur mal vor augen halten, wenn du einen prototype auf die movieclip klasse definierst, so hat jeder erstellte mc einen verweis auf diese neu definierte funktion. jetzt mal paar konkrete dinge: wenn du nen protype definierst für die movieclip klasse dann ist diese funktion gültig für alle mcs. wieso sprichst du darin aber nur einen speziellen mc (nämlich thema) an. ein aufruf auf dem mc thema und ein "this" täten doch schon genau das was du willst->this zeigt dann auf deinen thema mc. ActionScript:
eine funktion- unendliche viele mcs, und es ist egal wie sie heißen, per this greif ich auf den betreffenden mc zu ActionScript:
sollte nich so destruktiv rüberkommen hab doch auch mal angefangen!! denke das hilft dir schon mehr ![]() deluxe |
| | |
| | #9 (permalink) |
| Neuer User Registriert seit: Sep 2004 Ort: Spain/Ibiza
Beiträge: 942
|
hi wen du ein bischen english verstehst kan ich dir das hier empfehlen : http://timotheegroleau.com/Flash/art...cope_chain.htm
__________________ Languages : (in the order of knowledge/preference) Read: Flash AS, PHP, JS, Html, DHtml, Basic, C++, DOS, 3DMaxScript, English, Deutsch, Magyar, XML, Pascal, VB, Spanish Write: Flash AS, Basic, PHP, JS, DHtml, Html, ..., C++, ...., ..., English, ..., ..., ..., ...., Deutsch, ..., Magyar wen du mein deutsch nicht magst whele eine andere sparache von den obrigen ;) |
| | |
| | #10 (permalink) |
| scriptvermurkser Registriert seit: Apr 2003
Beiträge: 269
|
@Deluxe: jaaaa :-) viel besser. Damit kann ich doch was anfangen. Jetzt hab ich erst mal Denkstoff. Mit dem prototype hast du tatsächlich recht, evtl. reicht eine funktion, muss ich noch mal gucken. Vielen Dank also erst mal. Und auch an Xeef, das werd ich mir mal anschauen. |
| | |
| | #11 (permalink) |
| scriptvermurkser Registriert seit: Apr 2003
Beiträge: 269
|
Hallo Leute! Ich hab das alte Thema noch mal rausgeholt, weil es noch um das gleiche geht und ich noch eine Frage dazu habe. ICh weiß jetzt also, dass ich bei RollOutAktiv2 = true n = 2 mit eval ("RollOutAktiv" + n) == false abfragen kann, ob RollOutAktiv2 false ist. Wie aber schreibe ich, wenn ich RollOutAktiv+n den Wert false zuweisen will eval ("RollOutAktiv" + n) = false geht ja nicht. Seh ich grad den Wald vor lauter Bäumen nicht? Würde mich freuen, wenn mir da wer weiter helfen könnte. gr swky |
| | |
| | #12 (permalink) |
| Neuer User Registriert seit: Jun 2001 Ort: Stuttgart
Beiträge: 6.415
|
du mußt wissen in welcher zeitleiste sich die variable befindet zB für root: _root["RollOutAktiv"+n]=false funktioniert natürlich auch mit _aretn und der aktuellen zeitleiste: this[RollO...]=false _parent[RollO...]=false deluxe |
| | |
| | #13 (permalink) |
| scriptvermurkser Registriert seit: Apr 2003
Beiträge: 269
|
wieso eckige Klammern? Was bedeuten die? Geht aber auch nicht Syntaxschimpfe: Nach '.'-Operator wurde ein Feld erwartet. _root.["RollOutAktiv"+n]=false oder: Die linke Seite des Zuweisungsoperators muss eine Variable oder eine Eigenschaft sein. ["RollOutAktiv"+n]=false Meine Variable ist im 2. Frame der root-Zeitleiste |
| | |
| | #14 (permalink) |
| Gast
Beiträge: n/a
|
Du musst es schon so schreiben, wie Deluxe es vorgegeben hat, also ohne Punkt: ActionScript:
ActionScript:
|
|
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |