Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 02-02-2006, 09:19   #1 (permalink)
Neuer User
 
Registriert seit: Dec 2004
Beiträge: 22
bewegung der karte begrenzen

moin, moin,

ich will mit folgenden script einen lageplan einzoomen.
PHP-Code:
// Ursprungskoordinatenfunktion
movieclip.prototype.getOrigin = function () {
    
trace('getOrigin')
    
this.targetX this.startX;
    
this.targetY this.startY;
    
this.targetXs this.startXs;
    
this.targetYs this.startYs;
}
// Zielkoordinatenfunktion
movieclip.prototype.getTarget = function (factor) {
    
trace('getTarget')
    
this.targetX this.startX+(this.startX-this._parent._xmouse)*factor;
    
this.targetY this.startY+(this.startY-this._parent._ymouse)*factor;
    
this.targetXs this.startXs*factor;
    
this.targetYs this.startYs*factor;
}
// Zoomfunktion
movieclip.prototype.zoom = function (delaytargetXtargetY) {
    
trace('zoom')
    
this.difX this.targetX-this._x;
    
difY this.targetY-this._y;
    
difXs this.targetXs-this._xscale;
    
difYs this.targetYs-this._yscale;
    
this._x += (this.difX/delay);
    
this._y += (difY/delay);
    
this._xscale += difXs/delay;
    
this._yscale += difYs/delay;
    if(
Math.abs(10*this.difX) < 2){
        
trace('zoomende')
        
delete this.onEnterFrame
    
}
}
//


myStadt.startX myStadt._x;
myStadt.startY myStadt._y;
myStadt.startXs myStadt._xscale;
myStadt.startYs myStadt._yscale;
myStadt.getOrigin();

myStadt.setOnEnterFrame = function(){
    
this.onEnterFrame = function(){
        
this.zoom(4this.targetX,thistargetY);
    }
}

myStadt.onMouseDown = function(){
    
this.getTarget(2)
    
this.pressed true;
    
this.setOnEnterFrame();
}

myStadt.onMouseUp = function(){
    
this.getOrigin();
    
this.pressed false;
    
this.setOnEnterFrame();
}

myStadt.onMouseMove = function(){
    
trace('onMouseMove')
    if (
this.pressed) {
        
this.getTarget(2);
        
this.setOnEnterFrame();
    }
}

stop (); 
soweit funktioniert das auch und sieht klasse aus. ich schaffs allerdings nicht einne grenze zu definieren, über die man die karte nicht hinausschieben kann. bisher kann man den rand der karte in die maske hineinziehen. um das zu vermeiden, habe ich dieses script versucht.
PHP-Code:
// Globale Variablen deklarieren
_global.460;
_global.460;
//Begrenzung
this.onEnterFrame = function() {
    
//x
    
if ((this._x+((_parent._xmouse-this._x)/20))>(_global.B-this._width)) {
        
this._x = (_global.B-this._width);
    } else if (
this._x<_parent._xmouse && this._x<(_global.B-this._width)) {
        
this._x += (_parent._xmouse-this._x)/20;
    }
    if ((
this._x-((this._x-_parent._xmouse))/20)<0) {
        
this._x 0;
    } else if (
this._x>_parent._xmouse && this._x>0) {
        
this._x -= (this._x-_parent._xmouse)/20;
    }
    
//y 
    
if ((this._y+((_parent._ymouse-this._y)/20))>(_global.B-this._width)) {
        
this._y = (_global.B-this._width);
    } else if (
this._y<_parent._ymouse && this._y<(_global.B-this._width)) {
        
this._y += (_parent._ymouse-this._y)/20;
    }
    if ((
this._y-((this._y-_parent._ymouse))/20)<0) {
        
this._y 0;
    } else if (
this._y>_parent._ymouse && this._y>0) {
        
this._y -= (this._y-_parent._ymouse)/20;
    }
}; 
das hab ich direkt auf den mc mit der karte gelegt, damit allerdings nur erreicht, dass gar nix mehr funktioniert.. kann mir damit jemand weiterhelfen? oder eine andere möglichkeit aufzeigen die begrenzung zu definieren?

wär eine spitzensache! danke schon mal!
Grinscho ist offline   Mit Zitat antworten
Alt 02-02-2006, 13:04   #2 (permalink)
Neuer User
 
Registriert seit: Dec 2004
Beiträge: 22
das der ansturm so groß is hab ichnatürlich nicht erwartet;-)
zur ansicht kommt hier noch die fla. damit man sichs vorstellen kann.hier die Fla-Datei
Grinscho ist offline   Mit Zitat antworten
Alt 03-02-2006, 08:26   #3 (permalink)
Neuer User
 
Registriert seit: Dec 2004
Beiträge: 22
es kann doch gar ned sein, dass hier keiner ne antwort weiss. nicht mal ein vorschlag, oder ein hinweis? lasst mich nicht hängen leute!
Grinscho ist offline   Mit Zitat antworten
Alt 03-02-2006, 09:06   #4 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
Das Problem ist, dass dein Zoom an die Position gekoppelt ist! Eine Begrenzung wird so relativ schwierig, da das Zoom beeinträchtigt wird!
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 03-02-2006, 09:26   #5 (permalink)
Neuer User
 
Registriert seit: Dec 2004
Beiträge: 22
Talking

danke! endich eine antwort!!
deshalb beiß ich mir da wohl auch die zähne aus. hast du vielleicht ne idee, wie man das mit einem anderen zoomscript hinkriegen könnte?
Grinscho ist offline   Mit Zitat antworten
Alt 03-02-2006, 10:16   #6 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
Hmmmm... trenn einfach die zoom- und die Positionsverschiebungsfunktion (ist ja im Momen kombiniert)
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 03-02-2006, 10:24   #7 (permalink)
Neuer User
 
Registriert seit: Dec 2004
Beiträge: 22
das würd ich sehr gerne. aber dafür reichen leider meine kenntnisse nicht.. da komm ich allein nicht weiter. das script is ja schon auch etwas komplex.
Grinscho 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:06 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele