Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 05-06-2004, 15:44   #1 (permalink)
Neuer User
 
Benutzerbild von schnabelmax
 
Registriert seit: Oct 2003
Ort: im garten frankreichs
Beiträge: 76
Moose Tutorial, frage dazu...

Hallo forum,
ich hab lange gesucht und probiert. Ohne erfolg.
Also muss mir wieder einer helfen...

Es geht um moose Time-based Scripted Animation.
Ich brauch also jemanden dem das was sagt.

es geht um folgendes Move object,

PHP-Code:
tafelIn = new moose.Move(Math.easeOutElastic_root.torOne"mc_tafel"2, {_y_y+180}, false); 
es bewirkt bei seinem Aufruf das "mc_tafel" laut moose.Move animiert wird (wen das näher interessiert, der gucke unter :
www.ultrashock.com/


dieses Objekt ist erweiterbar um verschiedene parameter mit denen ich auch zurechtkomme aber mit einem nicht:
PHP-Code:
tafelIn.setCallbackFn (_root"test", ("how""are""you") ); 
die "setCallbackFn" Function dient dazu nach beendigung von "tafelIn" eine beliebiege function ausführen zu können. Laut Tutorial besitzt sie 3 param.:
setCallbackFn ( callbackObj, callbackFunc, callbackPara ) : defines the callback function

Nun habe ich also eine function erstellt:
PHP-Code:
function test abc
{
    
trace"Running! Arguments: a = " ", b = " ", c = " );

Und hier mein problem:
Wie notiere ich die zu übergebenden param. also a, b, c???

wenn ich es wie oben mache, gibt er :
"Running! Arguments: a = [object Object], b = you, c =" aus, aber zum richtigen Zeitpunkt (nachdem er "tafelIn" ausgeführt hat).

wenn ich das mache:
PHP-Code:
tafelIn.setCallbackFn (_root"test" ("how""are""you") ); 
gibt er : "Running! Arguments: a = how, b = are, c = you" aus (aber leider schon beim starten der swf und nicht erst nach beedigung von "tafelIn")

Also unheimlich lange Rede
und der Sinn?
wer kann mir sagen wo der Fehler liegt und wie ich korrekt die Callback funktion aufrufe und die param a, b, c übergebe???
__________________
gruß schnabelmax
schnabelmax ist offline   Mit Zitat antworten
Alt 05-06-2004, 17:15   #2 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
naja, ich habe mir das jetzt nicht angesehen, wie das intern funktioniert, aber entweder so:

tafelIn.setCallbackFn (_root, "test", "how", "are", "you");

Dann müsste es aber intern erkennen, wieviele parameter übergeben wurden, wird also vermutlich nicht klappen.

oder so, dann hast du eben nur noch eine Variable zu übergeben:

tafelIn.setCallbackFn (_root, "test", ["how", "are", "you"] );

dafür musst du dann allerdings die test-funktion anpassen:

function test(arr)
{
a = arr[0];
b = arr[1];
c = arr[2];
//...
};
Janoscharlipp ist offline   Mit Zitat antworten
Alt 05-06-2004, 17:36   #3 (permalink)
Neuer User
 
Benutzerbild von schnabelmax
 
Registriert seit: Oct 2003
Ort: im garten frankreichs
Beiträge: 76
danke ertstmal,

ich musste erst

function test (barg, arg) {
a = arg[0];
b = arg[1];
c = arg[2];

trace( "Running! test Arguments: a = " + a + ", b = " + b + ", c = " + c );
}
schreiben, damit er
tafelIn.setCallbackFn (_root, "test", ["how", "are", "you"] );
übernommen hat. Offenbar ist mir da etwas abhandengekommen.
Es erklärt vielleicht dieses seltsame "a = [object Object]" welches er im obigen bsp. bei der Übergabe der param. ausgegeben hat, aber verstehen tuhe ich es nicht.

tafelIn.setCallbackFn (_root, "test", "how", "are", "you");
hat er wie du beschriebst nicht akzeptiert.

Mal sehen ob ich mich da weiter durchwürge.
__________________
gruß schnabelmax
schnabelmax ist offline   Mit Zitat antworten
Alt 05-06-2004, 18:37   #4 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
also das erste, das du gemacht hast, das musst du, und kann man vermutlich auch nicht verstehen.
Das ist einfach falsch, da gibt es nichts zu interpretieren. Denn mit den Klammern fasst du "how", "are" und "you" irgendwie zusammen, allerdings in einer Art, die keine Bedeutung hat, der Interpreter versucht dann eben irgendwie rauszukriegen was du willst und macht das, was er für am besten hält.
Z.B. das hier:
Code:
a = ("a", "b", "c");
ergibt a = "c";


Deine 2. Version ist etwas klarer, aber auch nicht grade logisch.
wenn du dir mal diesen Teil hier aus deinem Befehl ausschneidst:
Code:
"test" ("how", "are", "you")
ist nicht mehr schwer nachzuvollziehen, was passiert.
Der String "test" macht erstmal Probleme, aber wenn danach Klammern kommen, muss es wohl eine Funktion sein, die da vorne steht, denn sonst machen die Klammern keinen Sinn. Und tatsächlich, test ist eine Funktion, also
Code:
test("how", "are", "you")
und dies ist nun einfach ein Aufruf der Funktion test.
Als CallbackFunktion hast du nun den Rückgabewert von test eingetragen, bei dir wohl keiner.
Mach mal sowas:
Code:
test = function(a)
{
return function(){ trace("callback!"); };
};

tafelIn.setCallbackFn (_root, "test" ("how"));
und der Theorie nach sollte NACH der Animation "callback!" in der Ausgabe landen.

Bei meinem Vorschlag hast du mit ["how", "are", "you"] ein Array als Parameter übergeben. Das ist eine Variable, die aber mehrere Felder speichern kann, diese sind duchnummeriert, bei 0 beginnend.
Die FUnktion test bekommt nun als Argument eine Variable, nämlich dieses Array. Mit arg[0] greifst du auf das 1. Feld des Arrays zu, in deinem Fall eben "how"...

Du könntest auch {a:"how", b:"are", c:"you"} übergeben (das ist dann ein Objekt) und dann in der Funktion mit
trace(arg.a) how, mit
trace(arg.b) are, und mit
trace(arg.c) you ausgeben.

Ein Objekt ist also eine Art Array (da motzen jetzt sicher einige...), bei dem die Felder nicht durchnummeriert, sondern benannt sind. (a, b, c)
Janoscharlipp 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:25 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele