Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 22-08-2003, 17:41   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2002
Beiträge: 71
Variablen im Hauptfilm mit einem geladenem swf ändern.

Ich habe im Hauptfilm ene Anzeige mit zB. Spielepunkten.
Nun lade ich einen swf.
Dadrin ist ein Button. Wenn ich auf den klicke sollte sich der Variablenwert zB. um 10 erhöhen. Es müsste doch damit gehen:

ActionScript:
  1. on (release)
  2. {_global.Punkte = Number(_global.Punkte)+10;
  3. }

Passiert aber nix.
Was mache ich falsch?
wojtexkowron ist offline   Mit Zitat antworten
Alt 22-08-2003, 17:52   #2 (permalink)
Neuer User
 
Benutzerbild von sascha wenning
 
Registriert seit: Jun 2001
Ort: NRW
Beiträge: 357
on (release)
{_global.Punkte = Number(_global.Punkte)+10;
}
Damit änderst du zwar den Wert der Variablen, nicht aber den Inhalt des Textfeldes, der dir die Punktzahl anzeigt.

Probier's mal so:

on (release)
Punkte += 10;
_root.DeinTextFeld.text = Punkte;
}

oder direkt

on (release)
_root.DeinTextFeld.text += 10;
}
sascha wenning ist offline   Mit Zitat antworten
Alt 22-08-2003, 19:23   #3 (permalink)
Neuer User
 
Registriert seit: Nov 2002
Beiträge: 71
Geht auch nicht.
Übrigens, auf dem gleichen Level (innerhalb des swf) reicht es den Wert der Variablen zu ändern um auch die Textanzeige zu ändern.
Ist das bei geladenem swf zu Hauptfilm anders?
Gruß
wojtexkowron ist offline   Mit Zitat antworten
Alt 22-08-2003, 19:56   #4 (permalink)
sambista
 
Benutzerbild von zappa
 
Registriert seit: Jun 2001
Ort: rodgau
Beiträge: 1.270
mit _global krieg ich das auch nicht in den griff, weiß der henker warum!!

ich hab die "alte " schreibweise genutzt, dann klappts wunderbar!

im Hauptfilm frame 1:

var Punkte=20;
loadMovieNum("button.swf",1)

im textfeld (anzeigefeld)des hauptfilms habe ich keinen Instanznamen vergeben, sondern im feld var >Punkte< eingetragen.

der button.swf hat die action:
on (release){
_level0.Punkte+=10;
}


dann klappt das einwandfrei!

vielleicht kannst du damit leben ??

würd mich aber auch interessieren, warum das mit _global nicht klappt.

da kam ich nur soweit, das die 10 angehängt aber nicht addiert wurde.
also der variable wert sah so aus

2010

und bei jedem button-klick wurde eine weitere 10 angehängt.
__________________
DON´T PANIC!!
ALLES WIRD GUT! ;)
zappa ist offline   Mit Zitat antworten
Alt 22-08-2003, 20:50   #5 (permalink)
Neuer User
 
Registriert seit: Nov 2002
Beiträge: 71
@zappa
Dann hast du schon weit geschafft.
Bei mir regt sich gar nix.
Versuch`s jetzt mit:

_global.Punkte=Number(_global.Punkte)+10

dann müsste es gehen.

Ich werde mit es mit deiner "alten" Schreibweise versuchen.
Gruß
wojtexkowron ist offline   Mit Zitat antworten
Alt 22-08-2003, 21:16   #6 (permalink)
Neuer User
 
Registriert seit: Nov 2002
Beiträge: 71
@zappa
Ja!!!
Mit der alten Schreibweise klappt's.

Aber ich glaube so ist es sicherer:

on (release){
_level0.Punkte=Number(_level0.Punkte)+10;
}

Damit es addiert und nicht einfach die Ziffern dranhängt.

Gruß
wojtexkowron ist offline   Mit Zitat antworten
Alt 22-08-2003, 21:27   #7 (permalink)
sambista
 
Benutzerbild von zappa
 
Registriert seit: Jun 2001
Ort: rodgau
Beiträge: 1.270
wenn du dich dabei wohler fühlst....

ist aber nicht wirklich notwendig!!!

im gegensatz zu diversen anderen "sprachen" musst du flash nicht zwingend erklären, ob es sich um einen string oder einen integer handelt.

wenn du die variable ohne " " deklarierst, geht flash davon aus, dass du einen int meinst und erkennt auch, dass man da was addieren/subtrahiern oder wie auch immer machen kann.
andernfalls käme die fehlermeldung

NaN = not a number

durch += n

wird hier dann automatisch der wert zum int als zahl addiert!!

aber es klappt ja!!
und das ist letztlich entscheidend!!!
__________________
DON´T PANIC!!
ALLES WIRD GUT! ;)
zappa ist offline   Mit Zitat antworten
Alt 23-08-2003, 00:08   #8 (permalink)
anyway
Gast
 
Beiträge: n/a
Zitat:
Geschrieben von zappa
im gegensatz zu diversen anderen "sprachen" musst du flash nicht zwingend erklären, ob es sich um einen string oder einen integer handelt.
Ich fürchte das ist in manchen Fällen doch notwendig, wie die 2010 bewiesen hat. Ein String wird eben durch Addition nicht so einfach zum Integer - was auch ganz gut so ist.

anyway.
  Mit Zitat antworten
Alt 23-08-2003, 08:03   #9 (permalink)
Revived @ Sunday
 
Benutzerbild von MacEvil
 
Registriert seit: Apr 2003
Ort: Nowhereland
Beiträge: 3.244
Hatte das Prob auchmal bei nem Taschenrechner.
Seit MX kann man das auch so schreiben :
ActionScript:
  1. _root.VARresult = parseInt(_root.VARInput)+parseInt(_root.VARInput2);
MacEvil 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:42 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele