Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 14-11-2003, 12:16   #1 (permalink)
Neuer User
 
Registriert seit: Oct 2003
Beiträge: 1
Question Hilfe, eine Fräge !!!

Mahlzeit !!

Benötige Hilfe bei einem kleinen Problem.
Folgendes:

Diese Zeile bewegt die Sequenz "dummy" über die Bühne:

_root.dummy._x += 3;

Gut und schön. Ich möchte nun aber die Richtung UND das Vorzeichen
dynamisch durch Variablen ersetzen. Also:

_root.dummy. var dir var sign = 3;

Wenn das jetzt nicht so klar geworden sein sollte, hier eine ausführliche
Beschreibung der Mission . . .
(Hoffe auf schnelle und kompetente Hilfe).

Gegeben sind:

A - Eine Filmsequenz als grafisches Objekt (Ziel der Aktion).
B - Eine Filmsequenz als Script-Container.
C - Eine Funktion auf _root.

Aufgabenstellung:

Die Sequenz (A) soll per Tastendruck über die Bühne bewegt werden können.
Dabei soll die Taste gedrückt gehalten werden können (dauerhafte Bewegung).
An sich nicht schwer zu lösen, aber das ganze soll so wenig Zeilen wie möglich
enthalten. Die Funktion (C) soll die Richtung(_x/_y) und das Vorzeichen (+/-)
für die Bewegung der Sequenz (A) dynamisch nutzen(per Argument-Übergabe).
Genau das ist aber das Problem, das sich einfach nicht lösen lassen will.


Bisheriger Aufbau:

A - Ein 50px x 50px Quadrat (Platzhaltergrafik) mit dem Instanznamen "dummy".

B - Leere Filmsequenz die folgenden Code enthält:

onClipEvent(enterFrame){
if (Key.isDown(Key.LEFT)) {
_root.dummyMove("_x","-");// Funktionsaufruf
}

//
// ... Hier würden die weiteren Abfragen nach den
// anderen Richtungen folgen ... (Key.RIGHT, Key.UP, usw.)
//

}


C - Funktion "dummyMove" auf _root enthält (sollte enthalten):

function dummyMove(dir,sign){

// Name der Sequenz - Die Richtung(dir) - Das Vorzeichen(sign) - Die Zuweisung

// Also etwas ähnliches wie hier (bitte nicht zu laut lachen):
_root["dummy." + dir] = ((_root["dummy." + dir] + sign) = 2);

// Die Klammern sind totaler Schwachsinn (ich weiß), doch das ist ja das Problem.
// Wie kann ich dynamisch in einem Ausdruck(oder anders) die beiden Variablen einsetzen??

}
timkleemann ist offline   Mit Zitat antworten
Alt 14-11-2003, 16:06   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
schöne lange, unverständliche erklären. könnte glatt von mir sein :-)

var vDiverenzX,vDiverenzY;

hochpfeil => vDiverenzX=-1
runterpfeil => vDiverenzX=1
linkspfeil => vDiverenzY=-1
rechtsspfeil => vDiverenzY=1

und dann ersetzt du die 1 noch durch eine globale variable, dann kannst du sogar sinnvoll die speed ändern.


nachtrag:
ich bin auch ein freund der kleinen mc's, man kanns aber auch übertreiben ;-) mach aus der einen zeile zwei:
_x+= vDiverenzX;
_y+= vDiverenzY;
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (14-11-2003 um 16:09 Uhr)
hgseib 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 15:25 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele