Willkommen auf dem Portal für Mediengestalter
|
|
Autor |
Nachricht |
Errox
Threadersteller
Dabei seit: 04.08.2008
Ort: Braunschweig
Alter: -
Geschlecht:
|
Verfasst Mo 03.08.2009 17:10
Titel Flash: thumbs mit alpha 0.5 laden |
|
|
Hallu.
Zur Zeit arbeite ich an einer kleinen Galerie. Thumbnails werden angeklickt um das große Bild aufzurufen.
Nun möchte ich bei den Thumbs einen schönen Hovereffekt integrieren und das klappt auch wunderbar. Ich fahre mit der Mauss über die Thumbs und sie leuchten auf, bzw. wechseln von alpha 0.5 auf alpha 1.0.
Das Problem: Er ruft anfangs die Thumbs mit alpha 1.0 auf, was zur Folge hat, dass ich erst einmal über die Thumbs fahren muss damit sie auf alpha 0.5 runterschalten, ehe sie darauf folgend mit dem Hovereffekt richtig reagieren.
Meine Frage: Wie lasse ich die Thumbs mit alpha 0.5 aufrufen? Ich habe streng nach Tutorial gearbeitet, dann alles nochmal wiederholt und anschließend ein wenig AS3 gebüffelt. Jetzt habe ich das gesamte Script nach meinem belieben verändert, allerdings schaffe es nicht alleine und finde auch nichts, wie ich mein Problem löse.
Das Script (Vorsicht, lang!):
Code: | import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;
var columns:Number;
var my_x:Number;
var my_y:Number;
var my_thumb_width:Number;
var my_thumb_height:Number;
var my_images:XMLList;
var my_total:Number;
var container_mc:MovieClip;
var full_mc:MovieClip;
var x_counter:Number = 0;
var y_counter:Number = 0;
var my_tweens:Array = [];
var container_mc_tween:Tween;
var full_tween:Tween;
var myXMLLoader:URLLoader = new URLLoader();
myXMLLoader.load(new URLRequest("gallery.xml"));
myXMLLoader.addEventListener(Event.COMPLETE, processXML);
function processXML (e:Event):void{
var myXML:XML = new XML(e.target.data);
columns = myXML.@COLUMNS;
my_x = myXML.@XPOSITION;
my_y = myXML.@YPOSITION;
my_thumb_width = myXML.@WIDTH;
my_thumb_height = myXML.@HEIGHT;
my_images = myXML.IMAGE;
my_total = my_images.length();
createContainer();
callThumbs();
myXMLLoader.removeEventListener(Event.COMPLETE, processXML);
myXMLLoader = null;
}
function callThumbs():void{
for (var i:Number = 0; i < my_total; i++){
var thumb_url = my_images[i].@THUMB;;
var thumb_loader = new Loader();
thumb_loader.load(new URLRequest(thumb_url));
thumb_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, thumbLoaded);
thumb_loader.name = i;
thumb_loader.x = (my_thumb_width+4)*x_counter;
thumb_loader.y = (my_thumb_height+4)*y_counter;
if (x_counter+1 < columns){
x_counter++;
} else {
x_counter = 0;
y_counter++;
}
}
}
function thumbLoaded(e:Event):void {
var my_thumb:Loader = Loader(e.target.loader);
container_mc.addChild(my_thumb);
my_tweens[Number(my_thumb.name)]=new Tween(my_thumb, "alpha", Strong.easeIn, 0,1,0.5, true);
my_thumb.contentLoaderInfo.removeEventListener(Event.COMPLETE, thumbLoaded);
}
function createContainer():void {
container_mc = new MovieClip();
container_mc.x = my_x;
container_mc.y = my_y;
addChild(container_mc);
container_mc.addEventListener(MouseEvent.CLICK, callFull);
container_mc.addEventListener(MouseEvent.MOUSE_OVER, onOver);
container_mc.addEventListener(MouseEvent.MOUSE_OUT, onOut);
container_mc.buttonMode = true;
}
function callFull(e:MouseEvent):void{
var full_loader:Loader = new Loader();
var full_url = my_images[e.target.name].@FULL;
full_loader.load(new URLRequest(full_url));
full_loader.contentLoaderInfo.addEventListener(Event.INIT, fullLoaded);
container_mc.removeEventListener(MouseEvent.CLICK, callFull);
container_mc.buttonMode = false;
container_mc.removeEventListener(MouseEvent.MOUSE_OVER, onOver);
container_mc.removeEventListener(MouseEvent.MOUSE_OUT, onOut);
container_mc_tween = new Tween(container_mc, "alpha", Strong.easeIn, 1,0.5,0.5, true);
var my_tween:Tween = Tween(e.target);
my_tween.removeEventListener(TweenEvent.MOTION_FINISH, tweenFinished);
}
function fullLoaded(e:Event):void{
full_mc = new MovieClip();
full_mc.buttonMode = true;
addChild (full_mc);
var my_loader:Loader = Loader(e.target.loader);
full_mc.addChild(my_loader);
full_tween = new Tween(my_loader, "alpha", Strong.easeIn, 0,1,0.3, true);
my_loader.x = (stage.stageWidth - my_loader.width)/2;
my_loader.y = (stage.stageHeight - my_loader.height)/2;
my_loader.addEventListener(MouseEvent.CLICK,removeFull);
my_loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, fullLoaded);
}
function removeFull(e:MouseEvent):void{
var my_loader:Loader = Loader (e.currentTarget);
full_tween = new Tween(my_loader, "alpha", Strong.easeOut, 1,0,0.3, true);
full_tween.addEventListener(TweenEvent.MOTION_FINISH, tweenFinished);
container_mc_tween = new Tween(container_mc, "alpha", Strong.easeOut, 0.5,1,0.3, true);
}
function tweenFinished (e:TweenEvent):void{
var my_loader:Loader = Loader (e.target.obj);
my_loader.unload();
full_mc.removeChild(my_loader);
removeChild(full_mc);
full_mc = null;
container_mc.addEventListener(MouseEvent.CLICK, callFull);
container_mc.buttonMode = true;
container_mc.addEventListener(MouseEvent.MOUSE_OVER, onOver);
container_mc.addEventListener(MouseEvent.MOUSE_OUT, onOut);
}
function onOver (e:MouseEvent):void{
var my_thumb:Loader = Loader(e.target);
my_thumb.alpha = 1.0;
}
function onOut (e:MouseEvent):void{
var my_thumb:Loader = Loader (e.target);
my_thumb.alpha = 0.5;
} |
Muss ich eine Variable einsetzen und dann in der Funktion callThumbs() aufrufen?
Freundliche Grüße, Errox.
|
|
|
|
|
sahnemuh
Dabei seit: 19.06.2003
Ort: /dev/null
Alter: 42
Geschlecht:
|
Verfasst Mo 03.08.2009 17:20
Titel
|
|
|
versuchs mal so:
Code: | function callThumbs():void{
for (var i:Number = 0; i < my_total; i++){
var thumb_url = my_images[i].@THUMB;;
var thumb_loader = new Loader();
thumb_loader.load(new URLRequest(thumb_url));
thumb_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, thumbLoaded);
thumb_loader.name = i;
thumb_loader.alpha = 50;
thumb_loader.x = (my_thumb_width+4)*x_counter;
thumb_loader.y = (my_thumb_height+4)*y_counter;
if (x_counter+1 < columns){
x_counter++;
} else {
x_counter = 0;
y_counter++;
}
}
} |
|
|
|
|
|
Anzeige
|
|
|
Errox
Threadersteller
Dabei seit: 04.08.2008
Ort: Braunschweig
Alter: -
Geschlecht:
|
Verfasst Mo 03.08.2009 17:37
Titel
|
|
|
Hm, ne. Hat leider nicht geklappt. Ich muss immernoch erst über den Thumb fahren, damit er auf alpha0.5 runterschaltet.
Habe es auch so
Code: |
thumb_loader.alpha = 0.5; |
versucht, aber das ist eigentlich egal, oder?
|
|
|
|
|
phihochzwei
Moderator
Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 46
Geschlecht:
|
Verfasst Mo 03.08.2009 17:37
Titel
|
|
|
@sahnemuh: Das was Du da hast is AS2, er hat aber AS3. Ansonsten wäre das aber eine möglichkeit.
@errox: DU sagst ihm doch, daß die Thumbs am Anfang volles Alpha haben sollen
Code: | function thumbLoaded(e:Event):void {
var my_thumb:Loader = Loader(e.target.loader);
container_mc.addChild(my_thumb);
my_tweens[Number(my_thumb.name)]=new Tween(my_thumb, "alpha", Strong.easeIn, 0,1,0.5, true);
my_thumb.contentLoaderInfo.removeEventListener(Event.COMPLETE, thumbLoaded);
}
|
Da sagst Du ihm "Wenn Du geladen hast, füge das Bild der stage hinzu und fade es von 0 auf 1. Fade doch einfach auf 0.5
|
|
|
|
|
Errox
Threadersteller
Dabei seit: 04.08.2008
Ort: Braunschweig
Alter: -
Geschlecht:
|
Verfasst Mo 03.08.2009 17:48
Titel
|
|
|
Code: | my_tweens[Number(my_thumb.name)]=new Tween(my_thumb, "alpha", Strong.easeIn, 0,0.5,1, true); |
Dank dir!
|
|
|
|
|
|
|
|
Ähnliche Themen |
extern laden mit alpha tweening?
Flash Bildergalerie: Scrolling der Thumbs stoppen
Flash & Alpha Tweens - Performance
[flash] alpha-tween per actionscript
[SUCHE] Flash Überlendeffekt (kein alpha)
Alpha Tweening Flash extern Fotogallery
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|