Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 16-01-2006, 14:26   #1 (permalink)
Neuer User
 
Benutzerbild von Pickarott
 
Registriert seit: Jul 2005
Ort: Berlin
Beiträge: 91
Question Bewegung mit Maus

Ich habe vor kurzem eine Datein erstellt, wo sich ein Ball mittels des Pfeiltasten bewegen lässt.
Nun möchte ich, dass sich der Ball mittels eines Mausklicks bewegt. Folgendes Script habe ich erstellt, aber noch will sich der Ball nicht in Bewegung setzen. Vielleicht findet jemand den Fehler...
PHP-Code:
var welt:Object = new Object();
welt.spalten 18;
welt.zeilen 12;
welt.zellAbstand 50;
welt.tiefe 1000;
welt.pfad this.grid;

function 
baueWelt() {
    for(var 
j:Number 0welt.zeilen; ++j) {
        for(var 
i:Number 0welt.spalten; ++i) {
            var 
name:String "zelle" "_" j;
            var 
x:Number welt.zellAbstand;
            var 
y:Number welt.zellAbstand;
            
welt.pfad.attachMovie("cell"name, ++welt.tiefe);
            
welt.pfad[name]._x x;
            
welt.pfad[name]._y y;
            
welt[name] = {x:iy:jname:nameclip:welt.pfad[name]};
        }
    }
}

function 
initialisierungBall() {
    
welt.geschwindigkeit 3;
    
welt.pfad.ball.swapDepths(10000);
    
welt.ball = {startX:1startY:1clip:welt.pfad.ball};
    var 
x:Number = (welt.ball.startX 1) * welt.zellAbstand welt.zellAbstand 2;
    var 
y:Number = (welt.ball.startY 1) * welt.zellAbstand welt.zellAbstand 2;
    
welt.ball.clip._x x;
    
welt.ball.clip._y y;
    
welt.ball.x;
    
welt.ball.y;
    
welt.ball.radius welt.ball.clip._width 2;
}

welt.pfad.onMouseDown = function() {
    var 
klickX:Number this._xmouse;
    var 
klickY:Number this._ymouse;
    var 
differenzX:Number klickX welt.ball.clip._x;
    var 
differenzY:Number klickY welt.ball.clip._y;
    var 
winkel:Number Math.atan2(differenzYdifferenzX);
    
welt.ball.bewegungX welt.geschwindigkeit Math.cos(winkel);
    
welt.ball.bewegungY welt.geschwindigkeit Math.sin(winkel);
    
    
ball.clip.onEnterFrame = function() {
        
this._x += welt.ball.bewegungX;
        
this._y += welt.ball.bewegungY;
    };
};

fscommand("fullscreen""true");
baueWelt();
initialisierungBall(); 
__________________
< Manchmal trifft man die richtige Entscheidung und manchmal trifft man die Entscheidung richtig >
Pickarott ist offline   Mit Zitat antworten
Alt 16-01-2006, 14:34   #2 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Hallo!
Zwei Sachen:

1. onMouseDown() gilt für den ganzen Film

2. Der Pfad zu "clip" ist auf jeden Fall falsch wobei ich nicht ganz checke, ob das nun "welt.pfad.ball.clip" oder "welt.ball.clip" ist. Irgendwie verwendest du hier
PHP-Code:
  welt.pfad.ball.swapDepths(10000); 
    
welt.ball = {startX:1startY:1clip:welt.pfad.ball}; 
beides???
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 19-01-2006, 12:30   #3 (permalink)
Neuer User
 
Benutzerbild von Pickarott
 
Registriert seit: Jul 2005
Ort: Berlin
Beiträge: 91
Zitat:
Zitat von Der Frager
PHP-Code:
  welt.pfad.ball.swapDepths(10000); 
    
welt.ball = {startX:1startY:1clip:welt.pfad.ball}; 
Das ist richtig, dass ich hier beides benutze, denn so, wie ich das verstanden habe (ist aus einem Buch abgeschrieben und modifiziert) wird
PHP-Code:
welt.pfad 
durch
PHP-Code:
this.grid 
ersetzt (letzte Zeile im ersten Code-Absatz). Damit dürfte also
PHP-Code:
welt.pfad.ball.swapDepths(10000
so von Flash interprtiert werden, dass dann
PHP-Code:
this.grid.ball.swapDepths(10000
dort steht.
Eigentlich wird damit auch nur die Instanz vom Ball-MovieClip, der sich innerhalb vom grid-MovieClip befindet, auf eine hohe Tiefe gesetzt...

Den anderen Teil habe ich so verstanden, dass dem Objekt "welt" ein Attribut "ball" zugewiesen wird und über die geschweiften Klammern dann diesem wieder weitere Werte zugeordnet werden.
Gehe ich richtig in der Annahme, das die geschweiften Klammern nur eine vereinfachte Schreibweise von
PHP-Code:
welt.ball.startX 1;
welt.ball.startY 1;
welt.ball.clip welt.pfad.ball
darstellen?

Letztlich sehe ich gerade, dass (wenn die obige Annhame stimmt) "welt.ball.clip" auch nur als "this.grid.ball" interpretiert wird und somit immer nur die Instanz vom Ball-MovieClip angesprochen wird...

Wenn ich irgendwo falsch liege, postet mir das bitte!
__________________
< Manchmal trifft man die richtige Entscheidung und manchmal trifft man die Entscheidung richtig >
Pickarott ist offline   Mit Zitat antworten
Alt 19-01-2006, 12:32   #4 (permalink)
Neuer User
 
Benutzerbild von Pickarott
 
Registriert seit: Jul 2005
Ort: Berlin
Beiträge: 91
Ich habe den Code nun noch ergänzt und wollte ihn der vollständigkeit halber noch mal posten:
PHP-Code:
var welt:Object = new Object(); 
welt.spalten 18
welt.zeilen 12
welt.zellAbstand 50
welt.tiefe 1000
welt.pfad this.grid

function 
baueWelt() { 
    for(var 
j:Number 0welt.zeilen; ++j) { 
        for(var 
i:Number 0welt.spalten; ++i) { 
            var 
name:String "zelle" "_" j
            var 
x:Number welt.zellAbstand
            var 
y:Number welt.zellAbstand
            
welt.pfad.attachMovie("cell"name, ++welt.tiefe); 
            
welt.pfad[name]._x x
            
welt.pfad[name]._y y
            
welt[name] = {x:iy:jname:nameclip:welt.pfad[name]}; 
        } 
    } 


function 
initialisierungBall() { 
    
welt.geschwindigkeit 3
    
welt.pfad.ball.swapDepths(10000); 
    
welt.ball = {startX:1startY:1clip:welt.pfad.ball}; 
    var 
x:Number = (welt.ball.startX 1) * welt.zellAbstand welt.zellAbstand 2
    var 
y:Number = (welt.ball.startY 1) * welt.zellAbstand welt.zellAbstand 2
    
welt.ball.clip._x x
    
welt.ball.clip._y y
    
welt.ball.x
    
welt.ball.y
    
welt.ball.radius welt.ball.clip._width 2


onMouseDown = function() { 
    var 
klickX:Number welt.pfad._xmouse
    var 
klickY:Number welt.pfad._ymouse;
    var 
differenzX:Number klickX welt.ball.clip._x
    var 
differenzY:Number klickY welt.ball.clip._y;
    var 
winkel:Number Math.atan2(differenzYdifferenzX); 
    
welt.ball.bewegungX welt.geschwindigkeit Math.cos(winkel); 
    
welt.ball.bewegungY welt.geschwindigkeit Math.sin(winkel);   
    
welt.ball.clip.onEnterFrame = function() { 
        
this._x += welt.ball.bewegungX
        
this._y += welt.ball.bewegungY
    }; 
}; 

fscommand("fullscreen""true"); 
baueWelt(); 
initialisierungBall(); 
Vielen Dank nochmals an "Der Frager", es lag letzten Endes wirklich nur an dem Pfad...
__________________
< Manchmal trifft man die richtige Entscheidung und manchmal trifft man die Entscheidung richtig >
Pickarott 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 20:12 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele