Panorama mit DRAG UND DROP

dalia

Grünschnabel
Hallo,

ich habe eine wirklich sehr dringende Frage:

Ich möchte gern einen scrollbaren Hintergrund (sprich ein Panoramabild erstellen) und daf+ür finde ich auch genügend Tutorials. Doch es wäremir wichtig dass sich das Bild "nur" bewegt wenn der User das Bild "zieht".

Ich habe unter
http://www.flashkit.com/tutorials/Special_Effects/Creating-Brent_Th-51/index.php
zwar die swf gefunden, die genau zeigt was ich will aber der download der fla.datei funktioniert nicht und ich finde nirgens ein ähnliches Tutorial.

Leider sind meine Flashkenntnisse so gering dass ich mit den Beschreibungen zu der Datei nicht sonderlich viel anfangen kann.

Wär für Hilfe wirklich sehr dankbar
 
If you are interested in obtaining custom agileVR files, please contact us here. Please include a description of your project and we will contact you shortly.
agileVR@agilestudios.com

war wohl zu gut für umsonst...
 
Zuletzt bearbeitet:
mhhhh

ja aber so schwerig kann das doch gar nicht sein oder?
ist doch eigentlich der gleiche "effekt" wie bei nem "normalen" Panoramabild nur eben nen bisschen anders <-- hab ich toll umschrieben wa? :)
 
neee, du - du brauchst eigentlich nur einen mc für die bilder, eine maske, den drag drop befehl beschränkt auf die y Achse, eine methode, um den duplizierten inneren mc an der richtigen stelle zu vernähen, und das wars....

wenn du schon mal anfängst so weit wie du kommst hilft mann dir hier garantiert weiter, aber ich hab zB nur Panoramen ganz anderer Natur, und ich habe keine Zeit dein Projekt einfach mal so zu machen.....also anfangen ( haaaart arbeiten) und wenn du nicht mehr weiterkommst, poste dien fla hier.....

Grüsse

B
 
Original geschrieben von Basileus
...ich habe keine Zeit dein Projekt einfach mal so zu machen...

Haha, aber ich! Naja, eigentlich wollte ich nur mal wieder das Arbeiten mit Funktionen üben :p
Das hier ist dabei rausgekommen:

PHP:
MovieClip.prototype.panorama = function () {
	this.mc = this._name;
	_root[this.mc].onMouseDown = function () {
		if(_root[this.mc].hitTest(_root._xmouse, _root._ymouse, true)){	
			_root[this.mc].maus_anfang = _root._xmouse;
			_root[this.mc].maus_verschoben = _root._xmouse;
			_root[this.mc].scrollen = true;
			_root[this.mc].anfangsposition = _root[this.mc]._x;
			_root[this.mc].onEnterFrame = function () {
				_root[this.mc]._x = _root[this.mc].anfangsposition + (_root[this.mc].maus_verschoben - _root[this.mc].maus_anfang);
			}
		}
	};
	_root[this.mc].onMouseUp = function () {
		if(_root[this.mc].hitTest(_root._xmouse, _root._ymouse, true)){	
			_root[this.mc].scrollen = false;
		}
	};
	_root[this.mc].onMouseMove = function () {
		if(_root[this.mc].hitTest(_root._xmouse, _root._ymouse, true)){	
			if (_root[this.mc].scrollen) {
				_root[this.mc].maus_verschoben = _root._xmouse;
			}
		}
	}
};

Zum Ausführen dann einfach das hier benutzen:
PHP:
_root.mc1.panorama ();
_root.mc2.panorama ();

Hoffe das hilft dir. Script ist natürlich noch stark erweiterbar. Ein Abfrage zur Randbeschränkung fehlt zum Beispiel. Aber DAS kannst du dann wirklich selber machen. ^^


Greetz,
Killy
 
@ killkrog

MovieClip.prototype heißt das du der Klasse MovieClip eine Methode hinzufügst (erbst). Das heißt das es nun bei jedem MC (MovieClip) die angefügte Methode zu Verfügung steht. So wie z.B. onEnterFrame

PHP:
this.mc = this._name;

Ist in dem Fall überflüssig, da this den kompletten Pfad enthält.

Statt dessen kannst du es so schreiben:
PHP:
MovieClip.prototype.panorama = function () {
    this.onMouseDown = function () {
        if(this.hitTest(_root._xmouse, _root._ymouse, true)){    
            this.maus_anfang = _root._xmouse;
            this.maus_verschoben = _root._xmouse;
            this.scrollen = true;
            this.anfangsposition = this._x;
            this.onEnterFrame = function () {
                this._x = this.anfangsposition + (this.maus_verschoben - this.maus_anfang);
            }
        }
    };
    this.onMouseUp = function () {
        if(this.hitTest(_root._xmouse, _root._ymouse, true)){    
            this.scrollen = false;
        }
    };
    this.onMouseMove = function () {
        if(this.hitTest(_root._xmouse, _root._ymouse, true)){    
            if (this.scrollen) {
                this.maus_verschoben = _root._xmouse;
            }
        }
    }
};

Das this. bezieht sich dann auf das angegebene MC: mc.panorama();
 
Zuletzt bearbeitet:
Das ganze könnte man mit startDrag vereinfachen:

PHP:
MovieClip.prototype.panorama = function () {
    this.onMouseDown = function () {
        if(this.hitTest(_root._xmouse, _root._ymouse, true)){    
            this.startDrag(false,-this._width,this._y,Stage.width,this._y);
        }
    };
    this.onMouseUp = function () {  
    	this.stopDrag();
    };
};
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück