Citat:
StarCraft: Ti zapravo samo hoćeš da animiraš sve a da ne kodiraš ništa? Pazi, za to postoji više rešenja:
- ili da se mi ovde ubijemo od priče i objašnjavanja, gde bi i ti morao da nam okačiš svoje radne fajlove
- ili da pokušaš da nađeš na netu neku gotovu komponentu koja sve to već radi što ti hoćeš (XML galerije)
- ili da skineš neke AS3 tutoriale pa da kreneš polako...
u svakom slučaju bi bilo korisno da nam napišeš koji su tvoji skillovi što se tiče fleša i koliko vremena imaš za ovaj projekat.
Ako hoćeš za početak možeš odma da nam okačiš neki tvoj FLA pa da vidimo iz prve ruke.
Ne, ja sam samo konstatovao da ne funkcioniše animiranje(bez AS) kada je UILoader u pitanju, odnosno ja kao početnik vidim da ne funkcioniše kao npr. Movie Clip.
Dakle nije problem u mojoj želji, ja želim da to odradim preko AS ako već ne može klasičnim putem, ali mi je trebao samo uput kako to započeti u AS.
Citat:
MenOfHonor: Ovo možeš odraditi na sledeći način:
Code:
import flash.events.Event;
uiLoader.addEventListener(Event.ENTER_FRAME, pomeranjeLoadera);
function pomeranjeLoadera(event:Event):void
{
uiLoader.x += 10;
}
U tom slučaju bi morao i da proveravaš da li je uiLodaer došao do kraja stage-a pa ako jeste da ga vratiš na početak:
Code:
if(uiLoader.x >= stage.stageWidth)
{
uiLoader.x = 0;
}
Da rezimiramo: da bi se uiLoader pomerao za po 10 piksela po X osi i da bi se vratio na početak jednom kada dođe do kraja stage-a trebao bi da uneseš sledeće:
Code:
import flash.events.Event;
uiLoader.addEventListener(Event.ENTER_FRAME, pomeranjeLoadera);
function pomeranjeLoadera(event:Event):void
{
uiLoader.x += 10;
if (uiLoader.x >= stage.stageWidth)
{
uiLoader.x = 0;
}
}
Hvala puno MenOfHonor, upravo mi je ovakav post trebao, kako bih skontao suštinu po kojoj treba da se radi..
Dakle, na kraju sam napravio 2 sloja, i oba sadrže samo 1 Frame. U prvom sloju su elementi(UIL i tekst) a u drugom sloju je AS.
Evo i konačnog izgleda AS na osnovu tvog uputa, bez koga bih se i dalje vrtio u krug kako početi..:)
Code:
import flash.events.Event;
import flashx.textLayout.formats.Float;
var alphavrednost:Number = 0;
var trenutniIdSlike:int = 0;
var ukupniBrSlika:int = 0;
var xmlArray:Array = new Array();
var sirinaSlike:int = UILoader1.width;
//var bojaTrake:ColorTransform = traka.transform.colorTransform;
var myXML:XML;
var myLoader:URLLoader = new URLLoader();
myLoader.load(new URLRequest("data.php"));
myLoader.addEventListener(Event.COMPLETE, processXML);
UILoader1.addEventListener(Event.ENTER_FRAME, pomeranjeLoadera);
UILoader1.addEventListener(MouseEvent.CLICK, myClick);
function myClick(eventObject:MouseEvent)
{
navigateToURL( new URLRequest(xmlArray[trenutniIdSlike][2]), "_self");
}
// >>> FUNKCIJA ZA UCITAVANJE XML PODATAKA
function processXML(e:Event):void
{
myXML = new XML(e.target.data);
ukupniBrSlika = myXML.slika.length();
for (var i:int = 0; i < ukupniBrSlika; i++)
{
xmlArray[i] = new Array(myXML.slika[i].urlslike, myXML.slika[i].naslov, myXML.slika[i].linkurl);
}
UILoader1.source = xmlArray[trenutniIdSlike][0];
naslov.htmlText = '<a href="'+xmlArray[trenutniIdSlike][2]+'">'+xmlArray[trenutniIdSlike][1]+'</a>';
}
// <<< FUNKCIJA ZA UCITAVANJE XML PODATAKA
// >>> FUNKCIJA ZA POMERANJE LOADERA
function pomeranjeLoadera(event:Event):void
{
// >>> ODREĐIVANJE NOVE ALPHA VREDNOSTI
if(UILoader1.x > -sirinaSlike && UILoader1.x < sirinaSlike)
{
alphavrednost = 1-(1/(sirinaSlike/Math.abs(UILoader1.x)));
UILoader1.alpha = alphavrednost;
traka.alpha = alphavrednost;
}
else
{
alphavrednost = 0;
UILoader1.alpha = alphavrednost;
traka.alpha = alphavrednost;
}
// <<< ODREĐIVANJE NOVE ALPHA VREDNOSTI
UILoader1.x += (sirinaSlike/100);
traka.x = UILoader1.x;
// >>> UKOLIKO JE SLIKA DOŠLA DO KRAJA
if(UILoader1.x >= stage.stageWidth)
{
trenutniIdSlike++;
if(trenutniIdSlike == ukupniBrSlika) trenutniIdSlike = 0;
UILoader1.source = xmlArray[trenutniIdSlike][0];
UILoader1.x = -sirinaSlike;
UILoader1.alpha = 0;
traka.x = -sirinaSlike;
traka.alpha = 0;
naslov.htmlText = '<a href="'+xmlArray[trenutniIdSlike][2]+'">'+xmlArray[trenutniIdSlike][1]+'</a>';
}
// <<< UKOLIKO JE SLIKA DOŠLA DO KRAJA
}
// <<< FUNKCIJA ZA POMERANJE LOADERA
E sad je samo problem da li postoji način učitavanja nove slike u novi loader dok se ova animacija dešava, ali kontam da to ne može pošto bi se animacija zaustavila dok se ne učita nova slika, a za ovaj moj primer je neophodno da animacija non stop radi, tj. da povećava X i resetuje ga.. Tražio sam po netu da li je to moguće, ali nisam pronašao rešenje...