Flashhilfe.de - Flash Community

Problem mit zufällig geladenen Bildern (AS3) [Flash 10]

 


AntwortenRegistrieren Seite1  

Aryn#1
Benutzerbild von Aryn
Beiträge: 10
Wohnort: Tirschenreuth
Registriert: Oct 2009

20.10.2009, 09:27

Hallo,

ich stehe vor einem Problem. Und zwar:

Momentan habe ich ein Raster von 7x7 Bildern. Auf jedem Feld ist das gleiche MovieClip, welches einen Hover Effekt und das Script enthält, dass ein Bild zufällig über eine XML geladen werden soll. Das funktioniert gut.
Nun zum eigentlichen Problem: Ich will, dass man die Bilder in dem Raster anklicken kann und dass diese sich dann mit einer Animation vergrößern. ABER das Bild soll immer an der gleichen Stelle vergrößert werden, sprich in der Mitte der Bühne. Das könnte man ja leicht über Scale oder nen Tween lösen. Aber dann müsste ich ja für alle 49 MC's eine eigene Animation machen, damit das gezoomte Bild immer an der selben Stelle in der Mitte ist.

Kann man das auch irgendwie anders lösen? Dass man zb ein neues SWF läd, welches dann das selbe zufällig geladene Bild des geklickten MCS enthält? Oder kann man irgendwie eine erstellte Animation, vielen Movieclips zuweisen?

So sieht momentan mein Script aus mit welchem ich die Bilder aus der XML lade.

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
var listLoader:URLLoader = new URLLoader( new URLRequest("pics/filelist.xml") );
var picLoader:Loader = new Loader();

listLoader.addEventListener(Event.COMPLETE, gotList);

function gotList(evt:Event):void {
   var xmlData:XML = XML(listLoader.data);
   var numImages:Number = xmlData.pix.length();

   var stImage:String = xmlData.pix[Math.floor(numImages*Math.random())].toString();

   picLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, gotPic);
   picLoader.load( new URLRequest(stImage) );

   listLoader.removeEventListener(Event.COMPLETE, gotList);
}

function gotPic(evt:Event):void {
   var thisBmp:Bitmap = Bitmap(evt.target.content);
   thisBmp.x = -60;
   thisBmp.y = -35;

   addChild(thisBmp);

   picLoader.contentLoaderInfo.removeEventListener(Event.COMPLETE, gotPic);
}


Danke schonmal im Vorraus, falls etwas unklar ist erläutere ich das nochmal gerne.

Grüße
Aryn
MichaHerrmann#2
Benutzerbild von MichaHerrmann
Beiträge: 21
Registriert: Nov 2008

20.10.2009, 09:43

Hallo,
ich denke, wenn die container-mc´s eh schon ein script zum Laden der Bilder enthalten, kannst du ihnen auch eins zum Vergrößern und in-die-Mitte-rücken zuweisen. Das könnte auch für alle das gleiche sein, denn ziel - x und ziel - y ist ja immer die Mitte. Etwa so:

x += (zielx - x)/3;
y += (ziely - y)/3;
xscale += (zielscale - xscale)/3;
yscale += (zielscale - yscale)/3;

Das läuft als loop. Es in jedem Frame 1/3 des noch verbleibenden Weges bis zum Ziel zurückgelegt.
Das Gleiche passiert mit der Größe.
Bei Beginn der Animation müsstest du das Bild noch mit swapDepths nach vorn holen, damit es die anderen verdeckt. Keine Gewähr für die Syntax - aber das Prinzip funktioniert ;)
joe brockerhoff#3
Benutzerbild von joe brockerhoff
Beiträge: 98
Wohnort: meerbusch
Registriert: Dec 2002

20.10.2009, 09:48

Wenn Du die Animation scriptest, kannst Du die dann je nach Positon in die Mitte zoomen lassen.

oops, da war ich wohl zu spät..
world wide wars -> world wide wisdom
www.brockerhoff.com
Geändert von joe brockerhoff am 20.10.09 um 09:49 Uhr
Aryn#4
Benutzerbild von Aryn
Beiträge: 10
Wohnort: Tirschenreuth
Registriert: Oct 2009

Themenautor/in

20.10.2009, 12:50

Werd das mal versuchen!
Danke schonmal für die schnelle Antwort =)

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   phpwelt.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2021 Sebastian Wichmann - Flashhilfe.de