Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 23-05-2005, 11:02   #1 (permalink)
Neuer User
 
Registriert seit: May 2005
Beiträge: 8
Question Fehler beim Bewegen von Movieclips!?!

Hallo erst einmal in diesem Forum. Bin noch ziemlich neu in Flach und ganz neu in diesem Forum. Ich habe folgendes Problem, vielleicht könnt ihr mir helfen:
Ich möchte ein männchen Machen, welches Sich über den Bildschirm bewegt und zufällig einige Aktionen durchführt. Es soll z.B. beim Mausklick bewegt werden können und danach wieder zum Grundleiste zurückfallen. Alles funktioniert auch super nur nicht immer, wenn ich im Mainframe die Bilder wechsle, dann kommt es hin und wieder vor das das onrelease nicht funktioniert? Das heißt, dass das Männchen dann komplett die Maus, auch ohne gedrückte Taste verolgt. Dieses hat dann zur Folge, dass man nicht mehr im Film navigieren kann Hier mal der Code vielleicht könnt ihr mir ja helfen, das Beispiel findet Ihr übrigens auf franky.in. mfg franky

[as
// Startdeklarationen beim Programmstart
onClipEvent (load) {
gefasst = false;
faellt = false;
aktR = 1;
aktL = 1;
aktV = 1;
startpos = -10;
endpos = 700;
grundlinie = 403;
richtung = "rechts";
}


onClipEvent (enterFrame) {
function fassen() {
// Figure wird angefasst
gotoAndPlay(8);
gefasst = true;
}

function fallen() {
// Figure wurde hochgehobn und fällt nun
if(this._y >= -40) {
faellt = false;
}
else {
aktV = aktV+1;
if(aktV == 1) this.gotoAndPlay(7);
if(aktV == 6) this.gotoAndPlay(8);
if(aktV == 12) {
this.gotoAndPlay(9);
aktV = 1;
}
this._y = this._y+1.8;
fallen = true;
}
}

function laufen_rechts() {
// Bis zum rechten Rand laufen und umkehren
if(richtung=="rechts") {
if(this._x <= endpos) {
aktR = aktR+1;
if(aktR == 1) this.gotoAndPlay(4);
if(aktR == 6) this.gotoAndPlay(5);
if(aktR == 12) {
this.gotoAndPlay(6);
aktR = 1;
}
this._x = this._x+0.8;
}
else richtung = "links";
}
}

function laufen_links() {
// Bis zum linkem Rand laufen und umkehren
if(richtung=="links") {
if(this._x >= startpos) {
aktL = aktL+1;
if(aktL == 1) this.gotoAndPlay(10);
if(aktL == 6) this.gotoAndPlay(11);
if(aktL == 12) {
this.gotoAndPlay(12);
aktL = 1;
}
this._x = this._x-0.8;
}
else richtung = "rechts";
}
}
function hüpfen() {
// Animation Hüpfen - übergibt true wenn beendet, ansonsten false
if(richtung=="hoch") {

}
if(richtung=="runter") {
}
if(this._y == startY) return("true");
else return("false");
}

// Hauptschleife
if((gefasst == false)&&(faellt == false)) {
laufen_rechts();
laufen_links();
}
else if (faellt == true) fallen();
}

on (press) {
startDrag(this, false, -20, -440, 720, -35);
fassen();
}
on(rollOut) {
if(gefasst==true) {
gefasst = false;
feallt = true;
fallen();
}
}
on(release) {
gefasst = false;
faellt = true;
fallen();
}

[/as]
franky inside ist offline   Mit Zitat antworten
Alt 23-05-2005, 11:18   #2 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.347
so ganz spontan sehe ich auch kein stopDrag und kein onReleaseOutside... mach doch mal ne sample fla fertig in der man schauen kann wo es genau hakt... jetzt einfach nur das as angucken ist etwas anstrengend und führt nicht automatisch zum ziel, bzw zum fehler
cya, sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Das betrifft auch Profilnachrichten.
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme!
salazar ist offline   Mit Zitat antworten
Alt 23-05-2005, 13:28   #3 (permalink)
Neuer User
 
Registriert seit: May 2005
Beiträge: 8
datei

die datei befindet sich in franky.in/flash/index.fla
franky inside ist offline   Mit Zitat antworten
Alt 23-05-2005, 13:45   #4 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415
Zitat:
Zitat von franky inside
die datei befindet sich in franky.in/flash/index.fla
hä?


salazar meinte, du mögest doch bitte das betreffende problem in flash als .fla abspeichern und hochladen, damit man sich das dann angucken kann;
__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary
andretti ist offline   Mit Zitat antworten
Alt 23-05-2005, 17:13   #5 (permalink)
Neuer User
 
Registriert seit: May 2005
Beiträge: 8
Zitat:
Zitat von andretti
hä?
das ist doch das Problem.. der Quellcode befindet sich im MC von dem kleinen Männchen "figure". Oder verstehe ich da jetzt irgendwas total falsch? Das Problem besteht aber weiterhin.. danke schon mal
franky inside ist offline   Mit Zitat antworten
Alt 23-05-2005, 19:59   #6 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415

ein buchstabe dreimal getippselt: "www"- tut doch nicht weh....ich wäre nie im leben draufgekommen, dass das 'n link ist...
__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary

Geändert von andretti (23-05-2005 um 22:19 Uhr)
andretti ist offline   Mit Zitat antworten
Alt 23-05-2005, 22:03   #7 (permalink)
Neuer User
 
Registriert seit: May 2005
Beiträge: 8
oh ok, sorry mein Fehler :P... Hab aber gedacht das wäre selbsterklärend.. na ja vielleicht hat noch wer ne lösung.. mfg
franky inside ist offline   Mit Zitat antworten
Alt 23-05-2005, 22:59   #8 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415
irgendwie schaffe ich's nicht, dass sich das männchen beim rechten rand wieder umdreht und nach links geht;

bei onRelease habe ich den drag-befehl gestoppt;
und einiges anderes habe ich auch verändert schau halt mal;

klick
__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary
andretti ist offline   Mit Zitat antworten
Alt 24-05-2005, 13:53   #9 (permalink)
Neuer User
 
Registriert seit: May 2005
Beiträge: 8
hey danke! das mit dem hängenbleiben funktioniert jetzt.. nur bekomme ich das mit dem umkehren auch nicht wieder hin?! hasst du eine Idee woran es liegen könnte? mfg franky
franky inside ist offline   Mit Zitat antworten
Alt 24-05-2005, 14:26   #10 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415
nö, momentan net, mal weitersuchen...
__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary
andretti ist offline   Mit Zitat antworten
Alt 02-06-2005, 16:54   #11 (permalink)
Neuer User
 
Registriert seit: Aug 2001
Ort: Austria/Vienna
Beiträge: 225
probiert mal das Männchen erst dann umdrehen zu lassen, wenn es zB. beim nach rechts gehen, ÜBER dem rechten rand ist. (das gleich beim links gehen). Sonst bleibt es am rand hängen, da in einem schritt die eine if zutrifft, und im nächsten gleich die andere .. also geht es immer hin und her

probiers mal so
PHP-Code:
// step sind die Schritte in px pro frame
var step 10;
guy.onEnterFrame = function() {
    
// wenn das männchen entweder über den rechten rand ODER über den linken rand kommt
    // dann wird die richtung umgedreht
    
if (this._x>=550 || this._x<=0) {
        
step*=-1;
    }
    
this._x += step;
}; 
Und dann vorsichtig sein. Du definierst zB. die Function fassen() in einem onEnterFrame-Event, das heißt, dass zB. bei einer framerate von 20, 20 mal pro sek die function erzeugt wird, obwohl das nur einmal nötig ist!!!!

lg TF
__________________
-----------------------------------------
"Wissen ist Nacht" - Prof. Dr. Abdul Nachtigaller
TigerFox ist offline   Mit Zitat antworten
Alt 08-06-2005, 15:34   #12 (permalink)
Neuer User
 
Registriert seit: May 2005
Beiträge: 8
Unhappy ich bekomms leider nicht hin :(

danke fox für deine hilfe bzw. anmerkung aber ich bekomms immer noch nicht hin.. entweder leuft der zum einen ende bleibt das stehen, oder er hakt sofort beim ersten schritt.. habe eigentlich alles ganz logisch programmiert aber ich komm da nicht weiter.. hört sich jetzt nen bisschen blöd an, aber kannst du mir mal den kompletten quelltext oder die fla datei zukommen lassen? ich verzweifle daran alles andere klappt einigermaßen.. danke franky
franky inside ist offline   Mit Zitat antworten
Alt 27-06-2005, 15:20   #13 (permalink)
Neuer User
 
Registriert seit: Aug 2001
Ort: Austria/Vienna
Beiträge: 225
Mein Script funktioniert nur dann nicht, wenn das Männchen anfangs auf _x = 0 sitzt.
Probiers nochmal so:
PHP-Code:
// step sind die Schritte in px pro frame
var step 10;
guy.onEnterFrame = function() {
    
// wenn das männchen entweder über den rechten rand ODER über den linken rand kommt
    // dann wird die richtung umgedreht
    
if (this._x>=550 || this._x<=0) {
        
step*=-1;
    }
    
this._x += step;
};
// setze das Männchen am Anfang gleich auf step
guy._x step
success
TF
__________________
-----------------------------------------
"Wissen ist Nacht" - Prof. Dr. Abdul Nachtigaller
TigerFox 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 09:51 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele