Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 24-04-2009, 15:39   #1 (permalink)
Cristóbal Colón
 
Benutzerbild von iCristobal
 
Registriert seit: Apr 2009
Beiträge: 7
Question Bilderfolge (tumbnails) schwebend (entgegengesetzte Richtung der Maus)

Hi

Ich benutze Adobe Flash CS3

ich hab ne kurze bilderfolge (banner) erstellt:

http://mannale.ch/mietobjekte/ambien...entebilder.php

nun möchte ich, wenn man mit der maus über ein bild geht, dass das gleiche bild nur grösser stattdessen erscheint, wenn man weggeht sollte es wieder kleiner sein.

ich hab alle bilder in die Library aufgenommen und hab die kleineren mit tn_ benannt, die grösseren mit mid_

Falls das auch noch geht möchte ich, wenn man drauf klickt, dass man darunter das grosse bild zu sehen kriegt.

ich hab so was mal gesehen, aber ich weiss nicht mehr wo, falls jemand so was schon gesehen hat, hätt ich gern ein beispiel.

Was später noch dazukommen sollte: wenn man die maus nach links bewegt, geht die bildfolge nach rechts und umgekehrt.

mein Beispiel ist noch sehr vage und die bewegung beschränkt sich auf einen motiontween ohne eine silbe actionscript.

Ich wär schon froh, wenn mir jemand aufzeigt, wie ich ein Bild das grösser ist austauschen kann bei mouseover oder so.
iCristobal ist offline   Mit Zitat antworten
Alt 24-04-2009, 19:10   #2 (permalink)
lebt in stereo
 
Benutzerbild von figure8
 
Registriert seit: Mar 2008
Ort: karlsruhe
Beiträge: 1.093
oooki, hab gerade bißle zeit, also legen wir mal los ich hoffe, du kennst die grundzüge von flash, falls nicht eigne dir die erst an (was es mit movieclips und so zu tun hat. das kann ich jetzt natürlich nicht alles erklären)

du brauchst nur eine bildgröe, undzwar das große. stell die jpeg-kompression mit rechtsklick "eigenschaften" auf das bild ein und "glätten zulassen" ebenfalls dort. du ziehst dir nun ein bild auf die bühne (ja, es ist zu groß) und machst daraus einen movieclip (f8). sobald das nen movieclip ist skalierst du den so groß, wie dein thumbnail sein soll. alles klar soweit? dann drückst du mal strg+t und kuckst, auf wieviel das ganze nu skaliert ist. am besten nimmst du irgendwelche geraden werte.

das gleiche machst du nun mit den anderen bildern auch (es gibt da die möglichkeit, den movieclip zu duplizieren und auszutauschen. wenn du die möglichkeit nicht kennst mach´s händisch) bis alles so ausschaut, wie es soll. es wird voraussichtlich aus der bühne rauslaufen, macht aber nüscht. wenn du alles schön aneinander gereiht hast kann´s weitergehen. ich hol mir mal fix was zu trinken..

so, alles aneinander gereiht? dann geht´s nun weiter: du markierst ALLE bilder und machst daraus einen movieclip. so dass dann alle movieclips, die du gerade gebastelt hast, nochmal in einem großem movieclip drin sind. das ist der container, den du brauchst, damit die dinger sich alle immer schön gleichmäßig mitbewegen. dem movieclip gibt´s du auch einen namen, am besten irgendwas mit container, damit du bescheid weißt.

so, nun das actionscript. auf deinen ersten frame schreibst du:
ActionScript:
  1. var oldScaleX:Array = new Array();
  2. var oldScaleY:Array = new Array();
  3. var oldPosX:Array = new Array();
  4. var oldPosY:Array = new Array();
  5. var picHolder:Array = new Array();
  6. var active:int;
  7.  
  8. for(var i=0; i<container.numChildren; i++) {
  9.     picHolder[i] = container.getChildAt(i);
  10.     picHolder[i].addEventListener(MouseEvent.ROLL_OVER, rollOverHandler);
  11.     picHolder[i].addEventListener(MouseEvent.ROLL_OUT, rollOutHandler);
  12.  
  13.     oldScaleX[i] = picHolder[i].scaleX;
  14.     oldScaleY[i] = picHolder[i].scaleY;
  15.     oldPosX[i] = picHolder[i].x;
  16.     oldPosY[i] = picHolder[i].y;
  17. }
  18.  
  19. function rollOverHandler(evt:MouseEvent) {
  20.     active = evt.currentTarget.parent.getChildIndex(evt.currentTarget);
  21.    
  22.     picHolder[active].x =  oldPosX[active] - picHolder[active].width / 2;
  23.     picHolder[active].y =  oldPosY[active] - picHolder[active].height / 2
  24.     picHolder[active].scaleX = 1;
  25.     picHolder[active].scaleY = 1;
  26.    
  27.     for(var i=0; i<active; i++) {
  28.         picHolder[i].x =  oldPosX[i] - 50;
  29.     }
  30.     for(var j=active+1; j<container.numChildren; j++) {
  31.         picHolder[j].x =  oldPosX[j] + 50;
  32.     }
  33. }
  34.  
  35. function rollOutHandler(evt:MouseEvent) {
  36.     for(var i=0; i<active; i++) {
  37.         picHolder[i].x =  oldPosX[i];
  38.     }
  39.     for(var j=active+1; j<container.numChildren; j++) {
  40.         picHolder[j].x =  oldPosX[j];
  41.     }
  42.    
  43.     picHolder[active].x = oldPosX[active];
  44.     picHolder[active].y = oldPosY[active];
  45.     picHolder[active].scaleX = oldScaleX[active];
  46.     picHolder[active].scaleY = oldScaleX[active];
  47. }

argh, leider bin ich gerade etwas in eile (hatte noch gegessen) sonst würd ich dir den code gern erklären und mit tweens, etc. zuende schreiben, hole ich aber spätestens die tage nach kannste erstmal ausprobieren so. so wird´s beim rollover größer und wieder kleiner beim rollout. natürlich bastelt man sowas eigentlich mit tweens, aber auch dafür fehlte mir gerade die zeit.. wie gesagt, spätestens die tage geht's weiter oder jemand hier kann das weiterführen : )

ps: das "entgegen des mauszeigers scrollen" findest du hier: click! - wobei es da auch weitaus bessere scripts gibt. wenn ich meins von damals wiederfinde poste ich's noch hier.
__________________
* Flash-JunkieMusiker & Grafiker

# Marvin Blase
# Speaker, Author, Silly Billy.
# @beautifycode

Geändert von figure8 (24-04-2009 um 19:32 Uhr)
figure8 ist offline   Mit Zitat antworten
Alt 24-04-2009, 21:58   #3 (permalink)
Cristóbal Colón
 
Benutzerbild von iCristobal
 
Registriert seit: Apr 2009
Beiträge: 7
Cool Herzlichen Dank erst mal für die Hilfe!

Hi figure8

erst mal herzlichen Dank!

Ich mach das mal die Tage und werde mich bestimmt noch mal melden.

Hoffe, dass ich das hinkrieg...

schönes Wochenende
iCristobal ist offline   Mit Zitat antworten
Alt 25-04-2009, 11:27   #4 (permalink)
lebt in stereo
 
Benutzerbild von figure8
 
Registriert seit: Mar 2008
Ort: karlsruhe
Beiträge: 1.093
hey,
hier mal eine (frühe) beta. hat noch einige bugs und so richtig geschmeidig läuft´s auch noch nicht. aber ich werd mal weiter dran arbeiten und dir dann bescheid geben gerade das re-positionieren ist noch nicht wirklich super. aber ich muss leider wieder in studio und komm dann erst abends oder morgen oder so dazu, weiterzumachen.

click!

hier der code bisher:
ActionScript:
  1. import gs.TweenLite;
  2. import gs.easing.*;
  3.  
  4. var oldScaleX:Array = new Array();
  5. var oldScaleY:Array = new Array();
  6. var oldPosX:Array = new Array();
  7. var oldPosY:Array = new Array();
  8. var picHolder:Array = new Array();
  9. var active:int;
  10.  
  11. init();
  12.  
  13. function init() {
  14.     // Movement "inverse Mouseposition"
  15.     container.addEventListener(Event.ENTER_FRAME, movement);
  16.    
  17.     for (var i=0; i<container.numChildren; i++) {
  18.         // Referenzarray basteln
  19.         picHolder[i]=container.getChildAt(i);
  20.         picHolder[i].addEventListener(MouseEvent.ROLL_OVER, rollOverHandler);
  21.         picHolder[i].addEventListener(MouseEvent.ROLL_OUT, rollOutHandler);
  22.         picHolder[i].buttonMode = true;
  23.  
  24.         // Ausgangsscales speichern
  25.         oldScaleX[i]=picHolder[i].scaleX;
  26.         oldScaleY[i]=picHolder[i].scaleY;
  27.  
  28.         // Ausgangspositionen speichern
  29.         oldPosX[i]=picHolder[i].x;
  30.         oldPosY[i]=picHolder[i].y;
  31.     }
  32. }
  33.  
  34. function movement(evt:Event) {
  35.     // Dimensionen speichern
  36.     var prop:Number = evt.currentTarget.width/stage.stageWidth;
  37.     var arrX:Number = -mouseX*prop + stage.stageWidth/2;
  38.    
  39.     // Proportionen zwischenspeichern
  40.     var dx:Number = arrX - evt.currentTarget.x;
  41.     var ax:Number = dx*.008;
  42.    
  43.     // Do it, baby!
  44.     evt.currentTarget.x += ax;
  45. }
  46.  
  47.  
  48. function rollOverHandler(evt:MouseEvent) {
  49.     // Derzeitig aktives Bild zwischenspeichern
  50.     active=evt.currentTarget.parent.getChildIndex(evt.currentTarget);
  51.  
  52.     // Vergrößern
  53.     TweenLite.to(picHolder[active], 1, {x:oldPosX[active] - picHolder[active].width / 2, y:oldPosY[active] - picHolder[active].height /2 , scaleX: 1, scaleY: 1, ease:Sine.easeOut});
  54.  
  55.     // Alles andere zurücksetzen (unfeine Lösung bisher..)
  56.     for (var i=0; i<active; i++) {
  57.         TweenLite.to(picHolder[i], 1, {x:oldPosX[i] - 50, scaleX: oldScaleX[i], scaleY: oldScaleY[i], y: oldPosX[y]});
  58.     }
  59.    
  60.     for (var j=active+1; j<container.numChildren; j++) {
  61.         TweenLite.to(picHolder[j], 1, {x:oldPosX[j] + 50, scaleX: oldScaleX[j], scaleY: oldScaleY[j], y: oldPosX[y]});
  62.     }
  63. }
  64.  
  65. function rollOutHandler(evt:MouseEvent) {
  66.     // Beim gloablen Rollout alles zurücksetzen (irgendwie auch unfein bisher)
  67.     TweenLite.to(picHolder[active], 1, {x:oldPosX[active], y:oldPosY[active], scaleX: .5, scaleY: .5, ease:Back.easeInOut});
  68.    
  69.     for (var i=0; i<active; i++) {
  70.         TweenLite.to(picHolder[i], 1, {delay:.5, x:oldPosX[i], scaleX: oldScaleX[i], scaleY: oldScaleY[i], y: oldPosX[y], ease:Back.easeInOut});
  71.     }
  72.    
  73.     for (var j=active+1; j<container.numChildren; j++) {
  74.         TweenLite.to(picHolder[j], 1, {delay:.5, x:oldPosX[j], scaleX: oldScaleX[j], scaleY: oldScaleY[j], y: oldPosX[y], ease:Back.easeInOut});
  75.     }
  76. }
__________________
* Flash-JunkieMusiker & Grafiker

# Marvin Blase
# Speaker, Author, Silly Billy.
# @beautifycode

Geändert von figure8 (25-04-2009 um 11:55 Uhr)
figure8 ist offline   Mit Zitat antworten
Alt 25-04-2009, 12:21   #5 (permalink)
öcher flasher
 
Benutzerbild von rady
 
Registriert seit: Feb 2008
Beiträge: 266
so muss auch mal meinen senf dazu geben...........gutes tut auf jeden fall, kann man auch immer mal wieder was lernen.........da ich mich zur zeit ausgiebig mit galerien beschäftige die auf as3 und xml(dynamisches laden) konzentriere, weiss ich wie schwer es manchmal ist eine vernünftige galerie hinzubekommen......du hast geschrieben, dass du keine silbe as verwendet hast....daraus schliess ich, dass du es gar nicht oder nur teilweise beherrscht....bevor du allerdings den code von figure verwendest, solltest du dir auf jeden fall die grundlagen beibringen, da sonst das nichts bringt.......newbies haben immer irgendwelche bugs und funktioniert nicht so wie es laufen sollte..........aber vielleicht ist ja figure so nett und baut dir ne galerie auf xml auf und du brauchst nur immer deine bilder in einen ordner zu laden und es funkt alles von alleine .......(kleiner spass)
rady ist offline   Mit Zitat antworten
Alt 25-04-2009, 13:22   #6 (permalink)
Cristóbal Colón
 
Benutzerbild von iCristobal
 
Registriert seit: Apr 2009
Beiträge: 7
klar bin newbee, aber ich hab ein gutes verständnis... ;)

Besten Dank nochmachl, auch für die Beta, das beispiel sieht ja schon ganz geil aus!
Hab heut frei, muss mal den köper kühlen, geh kurz mal in den see...

@ rady: ja klar ich könnt ja auch jemanden dafür bezahlen, aber ich dachte eigentlich, dass es auch ohne code geht und ich möchte halt schon gerne ein bisschen dahinter sehen.
AS3 interessiert mich auch, ich nehm mir die tage mal zeit und geh mal die zahlreichen tutorials zu dem thema durch und versuch mich an die syntax zu gewöhnen...

Cheers!
iCristobal ist offline   Mit Zitat antworten
Alt 27-04-2009, 08:39   #7 (permalink)
lebt in stereo
 
Benutzerbild von figure8
 
Registriert seit: Mar 2008
Ort: karlsruhe
Beiträge: 1.093
Zitat:
Zitat von rady Beitrag anzeigen
aber vielleicht ist ja figure so nett und baut dir ne galerie auf xml auf und du brauchst nur immer deine bilder in einen ordner zu laden und es funkt alles von alleine .......(kleiner spass)
letztendlich hab ich das dann vor ich muss so´n ding für die agentur eh mal bauen (irgend ein kunde kommt sicher bald deswegen mal), da kann ich´s auch gerade in ner 'lite-version hier posten. dauert aber noch a bißle
__________________
* Flash-JunkieMusiker & Grafiker

# Marvin Blase
# Speaker, Author, Silly Billy.
# @beautifycode

Geändert von figure8 (27-04-2009 um 08:45 Uhr)
figure8 ist offline   Mit Zitat antworten
Alt 27-04-2009, 17:27   #8 (permalink)
Cristóbal Colón
 
Benutzerbild von iCristobal
 
Registriert seit: Apr 2009
Beiträge: 7
Question Klassen gs.TweenLite und gs.easing...

Hi figure8

Hab alles mal mit deiner Anleitung gemacht, hab aber schon gedacht, dass
bei mir noch was fehlt.
Bin mir zwar nicht sicher, ob das mit der jpeg kompression stimmt, das hab ich nicht bei den Bildeingenschaften, sondern bei den Allgemeinen Eigenschaften gefunden.

Ich hab immer errors (1120) wenn der Container angesprochen wird.
Als ich die Movieclips erstellt hab von den einzelnen bildern hab ich einfach
den Vorgeschlagenen Namen wie Symbol 1 usw genommen, sollte ich die anders nennen?

Das Problem liegt irgendwie daran, dass er folgende Eigenschaften des Containers nicht kennt:

numChildren
getChildAt

oder liegt es am Namen?

das was du "container" genannt hast, heisst bei mir jetzt moviecontainer1
aber es ist immer noch dasselbe mit den gleichen Errors.

Kann es sein, dass die Dateien, die Du importiert hast bei mir fehlen?

Besten Dank

Gruss
iCristobal ist offline   Mit Zitat antworten
Alt 27-04-2009, 18:37   #9 (permalink)
lebt in stereo
 
Benutzerbild von figure8
 
Registriert seit: Mar 2008
Ort: karlsruhe
Beiträge: 1.093
du kannst ja mal die ganzen tweens (TweenLite.to) auskommentieren und schauen. kann schon gut sein, die gs-tweens gibt´s hier: hepp! wenn du deinen mc anders nennst musst du natürlich auch überall im script den namen ändern..
__________________
* Flash-JunkieMusiker & Grafiker

# Marvin Blase
# Speaker, Author, Silly Billy.
# @beautifycode
figure8 ist offline   Mit Zitat antworten
Alt 28-04-2009, 09:58   #10 (permalink)
Cristóbal Colón
 
Benutzerbild von iCristobal
 
Registriert seit: Apr 2009
Beiträge: 7
Ich hab immer noch folgende Fehler:



sieht aus als bräuchte ich noch mehr erweiterungen als nur die gs-klassen
oder hab ich beim movieclip was nicht richtig eingestellt?

Bis jetzt zeigt er mir einfach die Bilder an, aber ich hab keine bewegung drin

ich verstehs nicht
iCristobal ist offline   Mit Zitat antworten
Alt 28-04-2009, 10:01   #11 (permalink)
lebt in stereo
 
Benutzerbild von figure8
 
Registriert seit: Mar 2008
Ort: karlsruhe
Beiträge: 1.093
ja, du musst deinen movieclip benennen (im eigenschaftsinspektor, nicht nur beim anlegen). schau mal hier: click!
__________________
* Flash-JunkieMusiker & Grafiker

# Marvin Blase
# Speaker, Author, Silly Billy.
# @beautifycode
figure8 ist offline   Mit Zitat antworten
Alt 28-04-2009, 10:05   #12 (permalink)
Cristóbal Colón
 
Benutzerbild von iCristobal
 
Registriert seit: Apr 2009
Beiträge: 7
Thumbs up geil!

aaaah!
dort hat gar nix gestanden!
jetzt siehts echt geil aus!
iCristobal ist offline   Mit Zitat antworten
Alt 28-04-2009, 10:23   #13 (permalink)
lebt in stereo
 
Benutzerbild von figure8
 
Registriert seit: Mar 2008
Ort: karlsruhe
Beiträge: 1.093
hihi. im laufe der woche komme ich hoffe dazu, das ding zu entbuggen und auszubauen. solange kannst du dich aber schonmal in flash ein bißchen besser rüsten und versuchen, den code zu verstehen
__________________
* Flash-JunkieMusiker & Grafiker

# Marvin Blase
# Speaker, Author, Silly Billy.
# @beautifycode
figure8 ist offline   Mit Zitat antworten
Alt 28-04-2009, 10:26   #14 (permalink)
Cristóbal Colón
 
Benutzerbild von iCristobal
 
Registriert seit: Apr 2009
Beiträge: 7
thx

Vielen Dank!

so siehts aus
iCristobal ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
banner, bilder, cs3, mouseover, onclick

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 16:15 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele