Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 29-10-2004, 14:21   #1 (permalink)
Neuer User
 
Benutzerbild von gralle
 
Registriert seit: Jul 2002
Beiträge: 56
enterFrame und Schaltvariable

Folgendes Problem: ich möchte eine Animation über eine Schaltvariable starten:

Im Hauptfilm auf Bild 1:
drehen = true;

Im Mc:
onClipEvent (enterFrame) {
if (drehen = true) {
this._rotation += 20;
}
}

Auf einer Schaltfläche:
on (release) {
drehen = !drehen;
trace(drehen);
}


Die trace Ausgabe zeigt den korrekten Wert von "drehen", aber die Animation stoppt nicht. Warum ?
gralle ist offline   Mit Zitat antworten
Alt 29-10-2004, 14:41   #2 (permalink)
MrFriction
 
Benutzerbild von daleiLama
 
Registriert seit: Oct 2004
Ort: Belgien
Beiträge: 34
Falsche condition

hallo,

das heißt

if (drehen==true)

und nicht if (drehen=true)

also

onClipEvent (enterFrame) {
if (drehen==true) {
this._rotation += 20;
}
__________________
[daleiLama]
daleiLama ist offline   Mit Zitat antworten
Alt 29-10-2004, 14:43   #3 (permalink)
_rotation++;
 
Benutzerbild von jbloom
 
Registriert seit: Apr 2004
Beiträge: 109
Das gute alte istgleich-Bedingungsverwirrspiel:
Code:
if (a == b){
do();
}
also ein zweites =-Zeichen sollte helfen.
jbloom ist offline   Mit Zitat antworten
Alt 29-10-2004, 14:56   #4 (permalink)
Neuer User
 
Benutzerbild von gralle
 
Registriert seit: Jul 2002
Beiträge: 56
Hatte ich auch schon probiert - in dem Fall findet gar keine Animation statt...
siehe Anhang.
Angehängte Dateien
Dateityp: zip turn.zip (2,7 KB, 7x aufgerufen)
gralle ist offline   Mit Zitat antworten
Alt 29-10-2004, 14:59   #5 (permalink)
_rotation++;
 
Benutzerbild von jbloom
 
Registriert seit: Apr 2004
Beiträge: 109
Dann versuchs mal so:

this.drehen, statt drehen

&
definieren:

onClipEvent(load){

this.drehen = true;

}
jbloom ist offline   Mit Zitat antworten
Alt 29-10-2004, 15:11   #6 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
Wenn dein MC anhalten soll wenn man den BTN drückt, dann gehts doch mit daleiLama's AS.
__________________
:: Warum einfach, wenn's auch kompliziert geht! ::

Geändert von psyk (29-10-2004 um 15:18 Uhr)
psyk ist offline   Mit Zitat antworten
Alt 29-10-2004, 16:12   #7 (permalink)
Neuer User
 
Benutzerbild von gralle
 
Registriert seit: Jul 2002
Beiträge: 56
Sorry, Leute aber es funktioniert nicht so, habe alle hier gemachten Vorschläge mal angetestet. Vielleicht hat ja jemand Lust, mal in die oben gepostete fla zu gucken...
gralle ist offline   Mit Zitat antworten
Alt 29-10-2004, 18:57   #8 (permalink)
MrFriction
 
Benutzerbild von daleiLama
 
Registriert seit: Oct 2004
Ort: Belgien
Beiträge: 34
das ist ein typisches pfad problem

mache mal fogende anpassungen:

1.Der Button

on (release) {
_root.drehen = !_root.drehen;
trace(_root.drehen);
}

2.Der MC

onClipEvent (load) {
_root.drehen=true;
}
onClipEvent (enterFrame) {
if (_root.drehen) {
this._rotation += 20;
}
}

3. entferne dein drehen = true; aus deinem frame

jetzt gehts
__________________
[daleiLama]
daleiLama ist offline   Mit Zitat antworten
Alt 29-10-2004, 20:57   #9 (permalink)
Neuer User
 
Benutzerbild von gralle
 
Registriert seit: Jul 2002
Beiträge: 56
Thumbs up

Jau ! Funktioniert bestens. Zu meinem Verständnis: Ich deklariere aus dem mc heraus eine Variable auf der _root-Ebene ???
Warum geht die andere Variante nicht ?
gralle ist offline   Mit Zitat antworten
Alt 30-10-2004, 10:13   #10 (permalink)
MrFriction
 
Benutzerbild von daleiLama
 
Registriert seit: Oct 2004
Ort: Belgien
Beiträge: 34
es gibt locale und globale variablen

hallo,

bei deiner variante hast du

1. in deinem frame die globale "drehen=true;" definiert,
sie befindet sich also auf obersten niveau, also "_root"

diese variable kannst du nun überall mit "_root.drehen" erreichen.

2. hast du in deinem MC per onClipEvent nochmal drehen definiert.
diese variable gillt aber nun lokal für deinen MC.
diese befindet sich also hier:
"_root.MCname.drehen"

du hättest also in deinem frame "_root.MCname.drehen" angeben können um mit deiner lokalen variablen weiterzuarbeiten.

was ich nun gemacht habe ist, das ich immer die variable als globale definiert habe, _root.drehen.

übrigens ist MCname der name der instanz deines MC auf der bünhne, den du ändern kannst, indem du auf ihn klickst und ihm einen neuen name gibst.

greetz

:-hoffe das hilft dir weiter)
__________________
[daleiLama]
daleiLama ist offline   Mit Zitat antworten
Alt 30-10-2004, 12:21   #11 (permalink)
Neuer User
 
Benutzerbild von gralle
 
Registriert seit: Jul 2002
Beiträge: 56
Danke für Deine Mühe, aber so richtig klar ist mir das noch nicht. Nochmal zur Übersicht mein Script:

Im Hauptfilm auf Bild 1:

drehen = true;

-Variable drehen wird definiert.

Im Mc:

onClipEvent (enterFrame) {
if (drehen = true) {
this._rotation += 20;
}
}


- wo erzeuge ich hier eine neue, nur innerhalb des MC gültige Variable ???
gralle ist offline   Mit Zitat antworten
Alt 30-10-2004, 14:30   #12 (permalink)
Name is programm
 
Registriert seit: Jul 2001
Ort: El Äitsch
Beiträge: 237
zunächst mußt du deinem kreis einen instanznamen geben, dann kannst du diesem die variable drehen "mitgeben".

schau in den anhang, falls du das meinst.

Gruß
Wahni
Angehängte Dateien
Dateityp: zip turn.zip (3,2 KB, 4x aufgerufen)
Wahni ist offline   Mit Zitat antworten
Alt 30-10-2004, 14:35   #13 (permalink)
Name is programm
 
Registriert seit: Jul 2001
Ort: El Äitsch
Beiträge: 237
und richtig schick wirds dann wenn du mit ner extra ebene für AS das dingen schreibst und alle funktionen dort reinpackst. falls dein projekt dann mal größer wird kannste deine programmierten zeilen auch astrein wiederfinden...
Angehängte Dateien
Dateityp: zip turn.zip (3,3 KB, 3x aufgerufen)
Wahni ist offline   Mit Zitat antworten
Alt 30-10-2004, 16:27   #14 (permalink)
Neuer User
 
Benutzerbild von gralle
 
Registriert seit: Jul 2002
Beiträge: 56
@wahni: Interessanter Ansatz !

@Alle: Danke
gralle ist offline   Mit Zitat antworten
Alt 30-10-2004, 16:32   #15 (permalink)
MrFriction
 
Benutzerbild von daleiLama
 
Registriert seit: Oct 2004
Ort: Belgien
Beiträge: 34
oder...

..noch besser klassen schreiben , die man an MC's weitervererbt.

dann muß man keine scripte verdoppeln die ein und das selbe machen.
__________________
[daleiLama]
daleiLama 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 10:58 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele