| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User 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: www.ultrashock.com/ dieses Objekt ist erweiterbar um verschiedene parameter mit denen ich auch zurechtkomme aber mit einem nicht: PHP-Code: setCallbackFn ( callbackObj, callbackFunc, callbackPara ) : defines the callback function Nun habe ich also eine function erstellt: PHP-Code: 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: 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 |
| | |
| | #2 (permalink) |
| muh 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]; //... }; |
| | |
| | #3 (permalink) |
| Neuer User 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 |
| | |
| | #4 (permalink) |
| muh 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"); 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") 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") 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")); 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) |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |