 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
08.10.2007, 18:53
|
#1
|
|
TP-Senior
Registriert seit: Jun 2001
Ort: Deutschland, Berlin
|
actionscript: Parameterübergabe und onEnterFrame
Hallo,
ich möchte von der Hauptzeitleiste aus einen Movieclip (test_mc) über einen Button (start_btn) steuern. Das klappt auch so verschachtelt.
_root.start_btn.onRelease = function () {
endX= _root.test_mc._x+200;
_root.test_mc.onEnterFrame = function() {
div=5; // groesser=schneller
_root.test_mc._x += (endX-_root.test_mc._x)/div;
}
}
Nun möchte ich diese Verschachtelung aufspalten und habe folgendes probiert:
_root.test_mc.onEnterFrame = function(endX:Number, div:Number) {
_root.test_mc._x += (endX-_root.test_mc._x)/div;
trace(endX);
}
_root.start_btn.onRelease = function () {
endPunktX= _root.test_mc._x+200;
_root.test_mc.onEnterFrame(endPunktX, 5);
}
Das Problem ist die Parameterübergabe beim Aufruf der Funktion.
Da ich onEnterFrame habe, wird jedesmal wieder der gleiche Wert übernommen, so dass er sich in der Funktion nicht verändern kann.
Ich hoffe, ich habe mich einigermaßen verständlich ausgedrückt...
Weiß von Euch eventuell jemand einen Lösungsansatz?
Vielen Dank im Voraus.
Gruß
T:-)M
__________________
--------------------------------------
Nur ein toter Fisch schwimmt
mit dem Strom .....................
-> -> -> -> -> -> ->
-> -> -> ->
-> <- -> -> ->
-> -> ->
-> -> -> -> -> ->
|
|
|
08.10.2007, 19:04
|
#2
|
|
TP-Moderator
Registriert seit: Mar 2002
|
Hallo,
versuche es doch mal so:
PHP-Code:
MovieClip.prototype.bewegung = function (endX:Number, div:Number) {
delete this.onEnterFrame;
this.onEnterFrame = function () {
this._x += (endX - this._x) / div;
trace (endX);
};
};
_root.start_btn.onRelease = function () {
endPunktX = _root.test_mc._x + 200;
_root.test_mc.bewegung (endPunktX,5);
};
|
|
|
08.10.2007, 19:22
|
#3
|
|
TP-Senior
Registriert seit: Jun 2001
Ort: Deutschland, Berlin
|
Hallo Wanderratte,
ziemlich schräge Lösung - es funktioniert. Habe nur leider wieder eine verschachtelte Lösung, die eigentlich auch nicht kürzer ist.
Gruß
T:-)M
__________________
--------------------------------------
Nur ein toter Fisch schwimmt
mit dem Strom .....................
-> -> -> -> -> -> ->
-> -> -> ->
-> <- -> -> ->
-> -> ->
-> -> -> -> -> ->
|
|
|
08.10.2007, 19:27
|
#4
|
|
TP-Moderator
Registriert seit: Mar 2002
|
Noch kürzer ????
Meine Lösung kannst du übrigens auf x Objekte anwenden ohne das du am laufenden Band neue onEnterFrame erstellen musst. Aber okay, probiere das hier doch mal aus
PHP-Code:
_root.test_mc.endX = 200;
_root.test_mc.div = 5;
_root.test_mc.onEnterFrame = function () {
this._x += (this.endX - this._x) / this.div;
trace (endX);
};
_root.start_btn.onRelease = function () {
_root.test_mc.endX = _root.test_mc._x + 200;
_root.test_mc.div = 5;
};
|
|
|
08.10.2007, 19:38
|
#5
|
|
TP-Senior
Registriert seit: Jun 2001
Ort: Deutschland, Berlin
|
Hallo Wanderratte,
der läuft auch ohne Button :-D
... ich glaub, da finde ich die Lösung drüber doch besser.
Gruß
T:-)M
__________________
--------------------------------------
Nur ein toter Fisch schwimmt
mit dem Strom .....................
-> -> -> -> -> -> ->
-> -> -> ->
-> <- -> -> ->
-> -> ->
-> -> -> -> -> ->
|
|
|
08.10.2007, 19:44
|
#6
|
|
TP-Moderator
Registriert seit: Mar 2002
|
wenn er erst laufen soll, wenn der button geklickt wird, dann nimm doch mal diese Zeile:
PHP-Code:
_root.test_mc.endX = _root.test_mc._x;
Naja, es gibt x Wege nach Rom aber die edlere ist halt der Prototype. Die andere Frage ist auch immer was du genau vorhast bzw was du alles bezwecken willst 
|
|
|
08.10.2007, 21:40
|
#7
|
|
TP-Senior
Registriert seit: Jun 2001
Ort: Deutschland, Berlin
|
... hmm wahrscheinlich ist das mit dem Prototype der beste Weg.
Ist nur ungewohnt einen Movieclip zu erzeugen und die onEnterFrame gleich wieder zu löschen.
Ich möchte es für eine Navi verwenden. Der Inhalt verschiebt sich hinter einer Maske - hier nur in x-Richtung jeweils ein Stückchen weiter.
Aber ich möchte es auch für völlig freie x- und y- Koordinaten verwenden - deshalb die Idee die Werte über eine Button zu übergeben.
__________________
--------------------------------------
Nur ein toter Fisch schwimmt
mit dem Strom .....................
-> -> -> -> -> -> ->
-> -> -> ->
-> <- -> -> ->
-> -> ->
-> -> -> -> -> ->
|
|
|
08.10.2007, 21:57
|
#8
|
|
TP-Moderator
Registriert seit: Mar 2002
|
Sag das doch gleich 
gucke mal hier, aber kürzer geht es nun wirklich nicht mehr. Glaube ich wenigstens 
Flash8 und AS2 sind aber nötig
PHP-Code:
import mx.transitions.Tween; import mx.transitions.easing.*;
function tweenX (ziel:Number,target:MovieClip) { new mx.transitions.Tween (target, "_x", Regular.easeOut, target._x, ziel, 1, true); }
_root.start_btn.onRelease = function () { tweenX (test_mc._x + 200,test_mc); };
|
|
|
08.10.2007, 22:02
|
#9
|
|
TP-Senior
Registriert seit: Jun 2001
Ort: Deutschland, Berlin
|
.. die easing transitions kann man natürlich auch nehmen
- das ist wirklich am Kürzesten.
Nochmal Danke,
Gruß
T:-)M
__________________
--------------------------------------
Nur ein toter Fisch schwimmt
mit dem Strom .....................
-> -> -> -> -> -> ->
-> -> -> ->
-> <- -> -> ->
-> -> ->
-> -> -> -> -> ->
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 20:00 Uhr.
|
 |