Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 20-11-2005, 12:51   #1 (permalink)
Nice Newbie
 
Registriert seit: Sep 2003
Beiträge: 365
Mit einem Script mehrere MCs bewegen

hallo,

ich würde gerne mit einem script mehrerer mcs auf unterschiedliche
positionen verschieben lassen.
momentan funktioniert es nur mit einem mc ("back") aber ich würde die
selbe funktion auch für andere mc anwenden, die dann zu unterschiedlichen
positionen bewegt werden können.
ich habe versucht ein parameter zu übergeben, aber leider ohne erfolg.
was muss ich dabei beachten? ich dachte es funktioniert folgendermasen:

baseRate = 2.5;
function bewegen ([mc_name], [target_y]) {
this.onEnterFrame = function() {
// y-verschiebung
difference_y = [target_y]-[mc_name]._y;
rate_y = difference_y/baseRate;
[mc_name]._y += rate_y;
}

tut es aber leider nicht. :-(
was habe ich übersehen?

mein bisheriges script ( "slider()" ) liegt in einem frame und folgendermaßen
aus:

[AS]
// NAVIGATION
//variables
navi_point = 1;
//
navi_but.onPress = function() {
startDrag(this, false, 0, 0, 0, 300);
};
navi_but.onRelease = function() {
stopDrag();
navi_but_y = navi_but._y;
if (navi_but._y<50) {
navi_point = 1;
target_y = 100;
slider();
}
if ((navi_but._y>50) && (navi_but._y<100)) {
navi_but._y = 50;
navi_point = 2;
target_y = 200;
slider();
}
if ((navi_but._y>100) && (navi_but._y<150)) {
navi_but._y = 100;
navi_point = 3;
target_y = 300;
slider();
}
if ((navi_but._y>150) && (navi_but._y<200)) {
navi_but._y = 150;
navi_point = 4;
target_y = 400;
slider();
}
if ((navi_but._y>200) && (navi_but._y<250)) {
navi_but._y = 200;
navi_point = 5;
target_y = 500;
slider();
}
if ((navi_but._y>250) && (navi_but._y<300)) {
navi_but._y = 250;
navi_point = 6;
target_y = 600;
slider();
}
output.text = navi_point;
};
///
//move to background
baseRate = 2.5;
function slider() {
this.onEnterFrame = function() {
// y-verschiebung
difference_y = target_y-back._y;
rate_y = difference_y/baseRate;
back._y += rate_y;
};
}

weiß jemand was?
besten dank im voraus!
__________________
unique.
unique23 ist offline   Mit Zitat antworten
Alt 20-11-2005, 13:04   #2 (permalink)
ActionStripper
 
Benutzerbild von Mr.Twister
 
Registriert seit: Nov 2001
Ort: Oldenburg
Beiträge: 3.275
ich sehe nur, daß du eine funktion "bewegen" geschrieben hast, aber nicht, daß du sie auch ausführst.
zudem weiß ich nicht, wieso du in den funktionsparametern eckige klammern für arrays schreibst.
__________________
Design ist AUCH Geschmackssache.
Mr.Twister ist offline   Mit Zitat antworten
Alt 20-11-2005, 13:16   #3 (permalink)
Nice Newbie
 
Registriert seit: Sep 2003
Beiträge: 365
das mit den arrayklammern habe ich nun beseitigt. vielen dank für den
hinweis. aber mein problem bleibt bestehen auch wenn ich ein kleines
stückchen weiter gekommen bin. mein neuester stand ist folgender:

// NAVIGATION
//variables
navi_point = 1;
//
navi_but.onPress = function() {
startDrag(this, false, 0, 0, 0, 300);
};
navi_but.onRelease = function() {
stopDrag();
navi_but_y = navi_but._y;
if (navi_but._y<50) {
navi_point = 1;
// target_y = 100;
slider(back, 100);
slider(back2, 100);
}

output.text = navi_point;
};
///
//move to background
baseRate = 2.5;
function slider(mc, target_y) {
this.onEnterFrame = function() {
// x-verschiebung
difference_y = target_y-mc._y;
rate_y = difference_y/baseRate;
mc._y += rate_y;
};
}

wenn ich nun zwei mal die slider function ausführe, aber mit anderen mcs
dann geht das leider nicht. wie schaffe ich es aber doch, dass meine slider
function mit mehreren mcs gleichzeitig arbeitet?

1000 dank!
__________________
unique.
unique23 ist offline   Mit Zitat antworten
Alt 20-11-2005, 13:34   #4 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
In der Funktion nicht "this.onEnterFrame" sondern "mc.onEnterFrame" also so irgendwie:
PHP-Code:
function slider(mctarget_y) {
this[mc].onEnterFrame = function() {
// x-verschiebung
difference_y target_y-this._y;
rate_y difference_y/baseRate;
this._y += rate_y;
};

...hab's aber nicht getestet. Außerdem onEnterFrame auch wieder löschen! Könntest auch eine Prototypen nehmen.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 20-11-2005, 14:35   #5 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
Ich habs getestet und die eckigen Klammer kann man sich schenken, ist ja kein
String.
PHP-Code:
var baseRate 2.5
function slider(mctarget_y) {
    
mc.onEnterFrame = function() {
        var 
difference_y target_y-this._y;
        var 
rate_y difference_y/baseRate;
        
this._y += rate_y;
    };


PS: Bitte lege deine Skripts in eines der verschieden Skript-Tags, das verbessert
die Lesbarkeit ungemein.
__________________
:: Warum einfach, wenn's auch kompliziert geht! ::

Geändert von psyk (20-11-2005 um 17:06 Uhr)
psyk ist offline   Mit Zitat antworten
Alt 20-11-2005, 16:50   #6 (permalink)
Nice Newbie
 
Registriert seit: Sep 2003
Beiträge: 365
vielen dank!
funktioniert tadellos!

und auf die gliederung werde ich in zukunft auch achten.

besten dank!
__________________
unique.
unique23 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 22:04 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele