Skrypt tworzy galerię obrazków, animowaną po naciśnięciu przycisku od 1 do 6, dla każdego obrazka. Galeria jest w pełni obrotowa wobec ułożenia pozycji myszki.
Wersja On-line:
Aby skrypt zadziałał potrzebujemy 6 klipów filmowych o nazwach foto1_mc .... foto6_mc, które znajdują się w klipie o nazwie pojemnik_mc. Każdy z klipów osobnego zdjęcia powinien posiadać klip filmowy o nazwie powiększ_mc.
Kod dla pliku FotoPanel.AS jest ukazany na dole, należy zaimportować ten plik do pliku FLA.
Ten przykład wykorzystuje biblioteke Tween Lite Basic, którą można pobrać tutaj: [ pobierz ]
Listing
{
import flash.display.*;
import flash.events.*;
import gs.*;
import gs.easing.*;
public class FotoPanel extends MovieClip
{
private var zaznaczony:MovieClip;
public function FotoPanel():void
{
inicjalizacja();
addEventListener(Event.ENTER_FRAME, nawigacja);
}
private function inicjalizacja():void
{
var ilosc:int = pojemnik_mc.numChildren;
for (var i:int = 0; i<ilosc; i++)
{
var aktualny:MovieClip = MovieClip(pojemnik_mc.getChildAt(i));
aktualny.buttonMode = true;
aktualny.lokalizacja = [aktualny.x, aktualny.y];
aktualny.addEventListener(MouseEvent.ROLL_OVER, onOver);
aktualny.addEventListener(MouseEvent.ROLL_OUT, onOut);
aktualny.addEventListener(MouseEvent.CLICK, onClick);
}
}
private function onOver(e:MouseEvent):void
{
var aktualny:MovieClip = MovieClip(e.currentTarget);
if (aktualny != zaznaczony) {
TweenLite.to(aktualny.powieksz_mc, 0.2, {
alpha:1
});
}
}
private function onOut(e:MouseEvent):void
{
var aktualny:MovieClip = MovieClip(e.currentTarget);
TweenLite.to(aktualny.powieksz_mc, 0.2, {
alpha:0
});
}
private function onClick(e:MouseEvent):void
{
var aktualny:MovieClip = MovieClip(e.currentTarget);
if(zaznaczony == null)
{
powieksz(aktualny);
}
//nacisniecie powiększonego juz zdjęcia
//czyli pomnijeszenie go
else if(zaznaczony == aktualny)
{
TweenLite.to(aktualny, 0.5, {
scaleX:1,
scaleY:1,
x:zaznaczony.lokalizacja[0],
y:zaznaczony.lokalizacja[1],
ease:Expo.easeInOut,
onComplete:function(){zaznaczony=null;}
});
}
//klikniecie na inny obrazek podczas gdy już mamy
//otwarty jeden obraz
else
{
TweenLite.to(zaznaczony, 0.5, {
scaleX:1,
scaleY:1,
x:zaznaczony.lokalizacja[0],
y:zaznaczony.lokalizacja[1],
ease:Expo.easeInOut,
onComplete:powieksz,
onCompleteParams:[aktualny]
});
}
}
private function powieksz(aktualny:MovieClip):void
{
zaznaczony = aktualny;
pojemnik_mc.addChild(aktualny);
//aktualny.enlarge.alpha = 0;
TweenLite.to(aktualny, 0.5, {
scaleX:2,
scaleY:2,
x:0,
y:0,
ease:Expo.easeInOut
});
}
private function nawigacja(e:Event):void
{
//pobieranie procentowej nawigacji myszki do sceny głównej
var dystansX:Number = mouseX / 450;
var dystansY:Number = mouseY / 300;
//określa mc, czas, rotacje maksymalną pomiędzy -70 a 70 stopni
TweenLite.to(pojemnik_mc, 2, {
rotationY:-70+(140*dystansX),
rotationX:70-(140*dystansY),
ease:Expo.easeOut
});
}
}
}
Ranga: Administrator serwisu Punktów: 0