Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 10-01-2006, 17:24   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2005
Beiträge: 58
syntax für "globales" function script

Hallöchen an alle,

folgendes Problem: wenn ich einen Button drücke soll eine Fläche an einer bestimmten x und y Position mit einem bestimmten alpha_wert eingeblendet werden. Das Skript sieht wie folgt aus:

song_btn.onRelease = function() {
attachMovie("choosedsong_mc", "choosedsong", 9);
choosedsong._y = 174;
choosedsong._x = 96;
choosedsong._alpha -= 70;
};

Funzt auch alles soweit gut, nur möchte ich nicht für jeden weiteren song Button alles (x,y,alpha) erneut schreiben müssen. Wie würde denn ein „globales“ function script dazu aussehen? Wie binde ich in die function die x, y und alpha Werte in dieses mit ein? Was müsste ich dann an Stelle des Skriptes oben schreiben?

Zweites Problem: der mc „choosed song“ wird eingefadet. Jedes mal wenn ich jetzt den song_btn drücke fadet dementsprechend die Fläche erneut ein. Das will ich aber nicht. Ich will, dass die Fläche nur beim ersten Mal klicken eingefadet wird, bei jedem weiteren klicken soll der mc nicht mehr angesprochen werden. Jemand eine Idee (Variablen?) oder ein Skript? Ich bin noch ziemlich neu (und autodidaktisch ;-) auf dem Gebiet
des Action Script unterwegs.

Liebe Grüße … Christoph
saturnine ist offline   Mit Zitat antworten
Alt 10-01-2006, 17:41   #2 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Hallo!
Du solltest dich mal etwas genauer ausdrücken...
Nehmen wir mal an, die Buttons heißen "song_btn0", "song_btn1", usw...
PHP-Code:
var x_arr = [100200300];
var 
y_arr = [100200300];
var 
alpha_arr = [705030];
for (var 
0x<=2x++) {
    
this["song_btn"+x].x;
    
this["song_btn"+x].onRelease = function() {
        
attachMovie("choosedsong_mc""choosedsong"9);
        
choosedsong._y y_arr[this.x];
        
choosedsong._x x_arr[this.x];
        
choosedsong._alpha -= alpha_arr[this.x];
        
this.enabled false;
    };

Die Werte in den Arrays (x_arr etc) wären dann die _x, _y und _alpha Werte der 3 MCs.
So lassen sich die Dinger aber nur einmal anklicken. Wahrscheinlich soll's ja so sein, dass sich einfach der "aktive"-Butten nicht klicken lässt. Das meinte ich übrigens mit genauer ausdrücken .
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 10-01-2006, 21:10   #3 (permalink)
Neuer User
 
Registriert seit: Nov 2005
Beiträge: 58
Red face

Hallo,

erstmal vielen Dank für Deine Mühe! Sorry, daß ich mich so ungenau ausgedrückt habe, aber Du hast mich ja verstanden

Eine Frage habe ich dennoch: wenn ich jetzt mehrere Buttons habe, müßte das dann so ungefähr aussehen für zwei Buttons?!?

this["song_btn"+x].onRelease = function() {
attachMovie("choosedsong_mc", "choosedsong", 9);
choosedsong._y = y_arr[this.x];
choosedsong._x = x_arr[this.x];
choosedsong._alpha -= alpha_arr[this.x];
this.enabled = false;

this["song1_btn"+x].onRelease = function() {
attachMovie("choosedsong_mc", "choosedsong", 9);
choosedsong._y = y_arr[this.x];
choosedsong._x = x_arr[this.x];
choosedsong._alpha -= alpha_arr[this.x];
this.enabled = false;

Sorry, bin ein Newbie auf dem Gebiet
saturnine ist offline   Mit Zitat antworten
Alt 11-01-2006, 11:57   #4 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Ähhh... Nö! Das Script von mir wäre schon fertig, so wie's ist, für 3 Buttons mit den Instanznamen song_btn0, song_btn1 und song_btn2. Dafür ist ja die for-Schleife da.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 11-01-2006, 12:30   #5 (permalink)
Neuer User
 
Registriert seit: Dec 2005
Beiträge: 211
@saturnine: hätte das vor kurzem auch nicht kapiert. Pass auf: Fragers Script funktioniert immer dann wenn deine Buttons mit song_btn anfangen und danach eine Nummer angehängt bekommen. Wenn du sie nicht durchnummerierst ist die Funktion mit dem +x oder x++,etc. nicht möglich.
Warum man mit 0 anfangen muss und nicht mit 01 oder 0001 ist mir ein Rätsel. Flash will es halt so, also nehme ich es einfach so hin.
thomas_as ist offline   Mit Zitat antworten
Alt 11-01-2006, 12:38   #6 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Zitat:
Zitat von thomas_as
Warum man mit 0 anfangen muss und nicht mit 01 oder 0001 ist mir ein Rätsel.
Du kannst anfangen, wie du willst. Nur musst du dann eben vor die Zahl noch Nullen anhängen. Wenn deine Buttons z.B. btn_001, btn_002 etc. heißen sollen, dann machts du das z.B. so:
PHP-Code:
for (var 1x<=100x++) {
    
trace("btn_"+("00"+x).substr(-3));

Beim Hochzählen kommen halt einstellige Zahlen raus. Jetzt klarer?
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager 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 09:13 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele