[Anfänger] MouseOver soll Grafik vergrößern, MouseOut wieder zurückschrumpfen lassen

schildkroeter

Grünschnabel
Hallo!

Ich bin gerade dabei eine ganz einfach Sache in Flash zu designen.
Und zwar soll das ganze eine simple weiße Seite sein, wo acht schwarze Blöcke zu sehen sind. Beim MouseOver auf einen der Blöcke soll sich der Block vergrößern, also flüssig, eventuell mit dem Inhalt langsam aus dem Schwarz erscheinend.
Das ganze wäre dann mit Motion Tween und Alpha Einstellungen zu erreichen denke ich.
Der Inhalt der 9 Kästchen besteht aus 5 kurzen Texten und 4 Bildern. Eure Hilfe brauche ich beim Scripten, dass das ganze beim MouseOver startet, und bei einem MouseOut zurückgeht.

Btw, wie kann ich für den Text eine eigene Schriftart, also eine die nicht auf anderen Computern verfügbar ist, für die Zitate benutzen, dass die dann auch beim Enduser angezeigt wird?

Danke für eure Hilfe,
Jonathan
 
Re: [Anfänger] MouseOver soll Grafik vergrößern, MouseOut wieder zurückschrumpfen las

Hi,

ich hoffe, ich habe Dein Anliegen richtig verstanden. Im Anhang findest Du ein Beispiel mit 4 kleinen Boxen.

@Schriftart: Du musst die Zeichen einbetten (Es gibt wohl kaum etwas, was ich hier im Forum häufiger gesagt habe ^^). Wähle Dein Textfeld an, Klicke in den Eigenschaften auf "Zeichen..." und wähle die Zeichen(gruppen) aus, die Du in Deine Datei einbetten willst.

Gruß
.
 

Anhänge

  • growbox.zip
    5,4 KB · Aufrufe: 143
Danke für die Hilfe! Aber irgendwie hab ich Probleme das ganze an meine Bedürfnisse anzupassen...
wenn ich zum Beispiel mehr von den clips hinzufügen will, sind diese nicht mit dem mausover effekt versehen.

Add mich mal bitte bei ICQ, damit du mir vielleicht bei ein paar Einzelheiten aushelfen kannst!
Danke,
Jonathan
 
Re: [Anfänger] MouseOver soll Grafik vergrößern, MouseOut wieder zurückschrumpfen las

Hi,

ich bin zur Zeit nicht im ICQ. ;)

Aber die Anzahl kannst Du ganz einfach anpassen:

Ich habe ja vier Boxen mit den Instanznamen "clip1" bis "clip4" verwendet. Wenn Du nun mehr Boxen haben willst, gib ihnen auch fortlaufende Bezeichner (clip5, clip6 usw.).

Dann musst Du die Schleifen so ändern, dass alle Boxen berücksichtigt werden. Bei mir sieht das im Moment so aus:
PHP:
for (var i=1; i<=4; i++) {
, es werden also Clip 1 bis 4 durchlaufen. Setze lieber eine Variable mit der Anzahl der Clips an den Anfang des Scriptes:
PHP:
var anzahl = 8; // Anzahl der Clips
und verwende diese Variable in den Schleifen.

Das wäre einmal hier:
Code:
for (var i=1; i<=anzahl; i++) {
	this["clip" + i].onRollOver = function() {
		grow(this);
	}
	this["clip" + i].onRollOut = this["clip" + i].onDragOut = function() {
		grow(null);
	}
}
und dann noch einmal dort:
Code:
function grow(dest) {
	this.onEnterFrame = function() {
		var done = true;
		for (var i=1; i<=anzahl; i++) {
...
...

Gruß
.
 
Die Boxen springen
Sie verändern einfach ihre Position.
Siehe Attachment, vielleicht kannst du mir das reparieren!
 

Anhänge

  • growbox 2.zip
    7,1 KB · Aufrufe: 31
Achja, und eigentlich sollte ich wahrscheinlich eigene Clips für jede Instanz benutzen, da die später ja verschieden aussehen sollten.
Ist es möglich, dass die einzelnen Instanzen dann auch auf verschieden Größen vergrößern, und kann man die Richtung festlegen, in die die sich vergrößern?

Vielen, vielen Dank für deine Hilfe!!
 
Re: [Anfänger] MouseOver soll Grafik vergrößern, MouseOut wieder zurückschrumpfen las

Es war ja bisher keine Rede davon, dass sich die Dinger auch z.T. untereinander befinden. Dann muss man schon etwas anders rangehen (im Moment bleibt einfach der horizontale Abstand gleich).

Wenn die Blöcke sowieso einen recht großen Abstand haben und nicht die Gefahr besteht, dass sie sich beim Vergrößern überlappen, ist das alles kein Problem. Dann nimmst Du einfach diese Zeilen:
Code:
if (i > 1) {
		obj._x = this["clip" + (i - 1)]._x + this["clip" + (i - 1)]._width + gap;
}
raus, und sie bleiben an ihrer Position.

Wenn jeder Clip eine andere Zielvergrößerung bekommen soll, legst Du am besten ein Array mit den jeweiligen Faktoren an. In folgendem Beispiel habe ich das getan (im Array scales werden die Vergrößerungsfaktoren in Prozent für jeden der 9 Clips angegeben):
Code:
var anzahl = 9;
var scales = new Array(110, 120, 130, 140, 150, 160, 170, 180, 190);

for (var i=1; i<=anzahl; i++) {
	this["clip" + i].dscale = scales[i - 1];
	this["clip" + i].onRollOver = function() {
		grow(this);
	}
	this["clip" + i].onRollOut = this["clip" + i].onDragOut = function() {
		grow(null);
	}
}

function grow(dest) {
	this.onEnterFrame = function() {
		var done = true;
		for (var i=1; i<=anzahl; i++) {
			var obj = this["clip" + i];
			if (obj != dest) {
				var ds = 100;
			} else {
				var ds = obj.dscale;
			}
			obj._xscale += (ds - obj._xscale) / 3;
			obj._yscale = obj._xscale;
			if (Math.abs(obj._xscale - ds) < 1) {
				obj._xscale = obj._yscale = ds;
			} else {
				done = false;
			}
		}
		if (done) delete this.onEnterFrame;
	}
}

Gruß
.
 
Wie mach ich das denn wenn die sich auch überlappen sollen?
Weil zum Teil sollen die Boxen dann doch auch sehr groß werden...Außerdem sollen die sich nach Möglichkeit auch zur Mitte hin öffnen, also zum Bsp. die Box unten rechts soll sich nach oben links hin vergrößern, damit das ganze in dem Bereich bleibt in dem die Kästchen sind.

Danke für deine Geduld!
 
Re: [Anfänger] MouseOver soll Grafik vergrößern, MouseOut wieder zurückschrumpfen las

Das ist ein bisschen komplizierter. Ich bezweifle, dass ich es Dir erklären könnte, aber ein Beispiel bekomm ich wohl hin. Wenn ich morgen etwas Zeit habe, schau ich mal, was sich machen lässt.

Gruß
.
 

Neue Beiträge

Zurück