Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 04-06-2004, 20:49   #1 (permalink)
Neuer User
 
Benutzerbild von alexpetri
 
Registriert seit: Sep 2001
Ort: FrankfurtMain, Sondershausen
Beiträge: 710
a.onRelease startet sofort?

ich habe folgende Funktionen
PHP-Code:
a.onRelease = function() {
    if (
_root.num != 0) {
        
clearInterval(_root.animInt);
        
_root.num 0;
        
_root.createMovieClip();
        
_root.animInt setInterval(doAnim17);
    }
};
b.onRelease = function() {
    if (
_root.num != 1) {
        
clearInterval(_root.animInt);
        
_root.num 1;
        
_root.createMovieClip();
        
_root.animInt setInterval(doAnim17);
    }
};
c.onRelease = function() {
    if (
_root.num != 2) {
        
clearInterval(_root.animInt);
        
_root.num 2;
        
_root.createMovieClip();
        
_root.animInt setInterval(doAnim25);
    }
};

u.s.w
da steht also in der onRelease fast immer das gleiche.
will ich jetzt aber das ganze vereinfachen etwa so:
PHP-Code:
function doTransition(x) {
    if (
_root.num != x) {
        
clearInterval(_root.animInt);
        
_root.num x;
        
_root.createMovieClip();
        
_root.animInt setInterval(doAnim25);
    }
}
a.onRelease doTransition(a); 
dann startet meine fkt sofort...
was mache ich falsch...
muss man doch noch zum king of copy&paste werden?
__________________
Talk to the hand, cause the head aint listening
alexpetri ist offline   Mit Zitat antworten
Alt 04-06-2004, 20:54   #2 (permalink)
All-rounder
 
Benutzerbild von thebiz
 
Registriert seit: Mar 2004
Ort: Bayerische Rhön
Beiträge: 2.507
schreibe einfach:

a.onRelease=function(){
doTransition(a);};

dann started es nicht sofort.
__________________

--------------------------------
Ich klicke, ergo bin ich. (me)
--------------------------------
thebiz ist offline   Mit Zitat antworten
Alt 04-06-2004, 20:58   #3 (permalink)
Neuer User
 
Benutzerbild von alexpetri
 
Registriert seit: Sep 2001
Ort: FrankfurtMain, Sondershausen
Beiträge: 710
hmm ja es geht...danke
trotzdem sieht dieser "konstrukt"
etwas unlogisch (doppeltgemoppelt) aus
warum ist das so?
__________________
Talk to the hand, cause the head aint listening
alexpetri ist offline   Mit Zitat antworten
Alt 04-06-2004, 21:02   #4 (permalink)
All-rounder
 
Benutzerbild von thebiz
 
Registriert seit: Mar 2004
Ort: Bayerische Rhön
Beiträge: 2.507
in meinem mx buch steht, das deine version auch funktionieren sollt.
komischerweise geht es aber nicht.
vielleicht geht es mit AS 2.0 nicht mehr.
__________________

--------------------------------
Ich klicke, ergo bin ich. (me)
--------------------------------
thebiz ist offline   Mit Zitat antworten
Alt 04-06-2004, 21:13   #5 (permalink)
.
 
Registriert seit: May 2003
Ort: bayern
Beiträge: 1.117
wenn du das so schreiben möchtest mußt die die klammer beim Aufruf der funktion weglassen

a.onRelease = aktion;

function aktion(){
trace(this);
}

man spricht hierbei von einer zuweisung
mooseMash ist offline   Mit Zitat antworten
Alt 04-06-2004, 21:25   #6 (permalink)
All-rounder
 
Benutzerbild von thebiz
 
Registriert seit: Mar 2004
Ort: Bayerische Rhön
Beiträge: 2.507
kann man der funktion dann keine parameter mehr übergeben?

im handbuch von colin moock steht folgendes...

dort heißt es:
Beachten Sie, daß onEnterFrame eine Referenz auf die Funktion bewegeNachUnten zugewiesen wird und nicht der Rückgabewert eines Funktionsaufrufs von bewegeNachUnten(). Der Funktionsaufrufsoperator () darf also nicht angegeben werden.

ball.onEnterFrame = bewegeNachUnten;
__________________

--------------------------------
Ich klicke, ergo bin ich. (me)
--------------------------------

Geändert von thebiz (04-06-2004 um 21:28 Uhr)
thebiz ist offline   Mit Zitat antworten
Alt 04-06-2004, 21:56   #7 (permalink)
Neuer User
 
Registriert seit: Dec 2001
Ort: D
Beiträge: 381
Parameter:

Code:
a.value = 1;
a.onRelease = this.action;

function action() { 
    trace(this);
    trace(this.value);
};
momo-loom ist offline   Mit Zitat antworten
Alt 04-06-2004, 22:39   #8 (permalink)
Flashaholic
 
Benutzerbild von atothek
 
Registriert seit: Feb 2003
Ort: Berlin
Beiträge: 1.459
@momo-loom na fast mit den parametern liegste schon nah dran es sind vielmehr die ParameterKlammern denn damit tätigt man einen Funktionsaufruf und erhält den return wert zurück
deine art wird auch nicht gehen da sie logisch falsch ist es mußte sorum gemacht werden

PHP-Code:
function action() { 
    
trace(this);
    
trace(this.value);
};
a.value 1;
a.onRelease this.action
__________________
TVNEXT Solutions
atothek ist offline   Mit Zitat antworten
Alt 04-06-2004, 22:41   #9 (permalink)
All-rounder
 
Benutzerbild von thebiz
 
Registriert seit: Mar 2004
Ort: Bayerische Rhön
Beiträge: 2.507
das stimmt nicht.
die funktion kann auch nach dem aufruf kommen,
wenn alles auf dem selben schlüsselbild liegt.
oder liege ich falsch?!
ich denke nicht.

aber bevor ich so einen heckmeck machen,
schreibe ich doch lieber:

PHP-Code:
a.onPress = function() {
    
machDas(hiermit);
}; 
__________________

--------------------------------
Ich klicke, ergo bin ich. (me)
--------------------------------

Geändert von thebiz (04-06-2004 um 22:47 Uhr)
thebiz ist offline   Mit Zitat antworten
Alt 04-06-2004, 22:55   #10 (permalink)
Flashaholic
 
Benutzerbild von atothek
 
Registriert seit: Feb 2003
Ort: Berlin
Beiträge: 1.459
na ansich haste recht war ein wenig voreilig, SORRY! aber das liegt wohl bei mir eher daran das ich functionen nie so definiere. bin eher von der sorte meinFkt=function()... und da ist das so das diese erst existiert wenn du sie definiert hast was für mich auch vom programmfluß kosequenter ist. die schreibweiße mit einer benannten function fand ich immer zu unleserlich und das der funktionsaufruf vor der definition denoch funktioniert ist mir nach wie vor schleierhaft.
__________________
TVNEXT Solutions
atothek ist offline   Mit Zitat antworten
Alt 04-06-2004, 23:20   #11 (permalink)
All-rounder
 
Benutzerbild von thebiz
 
Registriert seit: Mar 2004
Ort: Bayerische Rhön
Beiträge: 2.507
na ja das es funktioniert, dass die funktion nach dem aufruf kommt (jedoch nur auf dem selben schlüsselbild) ist halt so festgelegt.
falls du das handbuch von colin moock hast, steht es auf seite 208 unten.

..dort steht:

Beachten Sie, daß Funktionen im Skript eines Bildes initialisiert und zugänglich werden, wenn der Abspielkopf das Bild, zu dem das Skript gehört, zum ersten Mal betritt. Daher können Sie eine Funktionsaufruf vor die Funktionsdeklaration setzen, sofern nur beides im Skript desselben Schlüsselbildes passiert.

(muss man also einfach so hinnehmen )

deine Version z.B.
PHP-Code:
_global.funktionsname = function(){
anweisungen
}; 
eignet sich für globale Geschichten sehr gut.
__________________

--------------------------------
Ich klicke, ergo bin ich. (me)
--------------------------------
thebiz ist offline   Mit Zitat antworten
Alt 05-06-2004, 18:43   #12 (permalink)
Flashaholic
 
Benutzerbild von atothek
 
Registriert seit: Feb 2003
Ort: Berlin
Beiträge: 1.459
na ist auch ansich für mich eine frage für die lesbarkeit von code. die schreibweise von benannten functionen ist in ihrer lesbarkeit finde ich nicht so toll. hi8ngen in der Schreibweiße meineFunk=function() sehe ich sofort am anfang der zeile um welche function es sich handelt. naja jeder hat da so seine vorlieben
__________________
TVNEXT Solutions
atothek ist offline   Mit Zitat antworten
Alt 05-06-2004, 18:47   #13 (permalink)
Neuer User
 
Registriert seit: Dec 2001
Ort: D
Beiträge: 381
ich bevorzuge auch diese Schreibweise: meineFunk=function()

aber auch dabei, wenn es sich um Klassen handelt sind die Fkt
verfügbar, auch wenn sie erst nach einer Funktion deklariert werden,
die sie aufruft
momo-loom ist offline   Mit Zitat antworten
Alt 05-06-2004, 18:50   #14 (permalink)
Flashaholic
 
Benutzerbild von atothek
 
Registriert seit: Feb 2003
Ort: Berlin
Beiträge: 1.459
na das liegt aber vielmehr an der prototype vererbung nehme ich mal an. da du ja das Object aus deiner klasse erzeugst und das object somit über alle klassen Members verfügt !!!
__________________
TVNEXT Solutions
atothek 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 23:59 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele