söndag 5 juli 2009

Lite hjälp tack!

Jag är nästan klar med mitt galleri, men det finns en liten detalj som har stört mig ett tag nu som jag inte vet hur jag ska åtgärda. När jag klickar på en thumbnail anropar jag en funktion som kör igång en loader som laddar en URL och en stor bild av den thumbnail man klickar på visas.

Storleken på de stora bilderna kan variera och detta blir ett problem då jag inte kan får fram bredden på bilderna. Att detta blir ett problem är för att jag behöver bredden med i en uträkning som gör så att bilderna alltid hamnar i mitten av Y-ledet oavsett bredd.

Med följande kod laddar jag in bilderna med hjälp av URLen som finns i en XML-tagg

var bigImgLoader:Loader = new Loader();
var bigImg:URLRequest = new URLRequest(xmlcode.image.file[i]);
bigImgLoader.load(bigImg);

Man kan tycka att man ska få ut bredden på bilden genom följande

trace(bigImgLoader.width);

Men det skriver endast ut värdet noll. Är det någon som vet hur man ska gå till väga för att få tag på bredden?

fredag 3 juli 2009

Galleriet nästan klart, har tagit en närmre titt på Flex

Mitt galleri är i stort sett klart, ska bara lägga till lite mer visuella effekter vilket faktiskt brukar vara det svåraste. Jag kommer att lägga upp galleriet på hemsidan snart. Postar en länk i ett inlägg.

Jag har även tagit en titt på Flex vilket är mycket mer effektivt om man ska bygga RIAs. Till linux finns där endast en SDK dock och till Windows och Mac finns där Flex Builder som verkar riktigt smidigt att använda.

Med Flex använder du också Actioncsript 3.0.

Läs mer här: http://www.adobe.com/products/flex/

tisdag 23 juni 2009

Galleri med actionscript 3 och XML - Del 1

Håller just nu på att göra ett galleri i Flash CS3 med hjälp av Actionscript 3 och XML.
Det första jag gjorde var att skapa en XML innehållandes information om vad bilden heter, vad den har för källa och även källan till en "thumbnail" för respektive bild.
Medans jag bygger galleriet har jag endast en XML men sedan ska jag ha en XML för varje kategori.


Jag skapar sedan i actionscript en variabel med namnet imgCatNight_XML ("image category night XML") innehållandes källan för min XML.

private const imgCatNight_XML = "xml/night.xml";

Övriga variabler jag har deklarerat i klassen är följande.

private var _loader:URLLoader;
private var imgArray:Array = new Array();

private var nameArray:Array = new Array();
private var fileArray:Array = new Array();
private var thumbArray:Array = new Array();

Sedan laddar jag in XML-filen med med hjälp av följande kod (Tack Rune).

private function getXML() {
var req:URLRequest = new URLRequest(imgCatNight_XML);
_loader = new URLLoader(req);
_loader.addEventListener(Event.COMPLETE, xmlLoaded);
_loader.load(req);

} // End getXML

Som ni ser på den eventListener som finns i funktionen startas en annan funktion vid namn xmlLoaded (Återigen tackar vi Rune för det). För en nybörjare kan den funktionen se lite knepig ut men den ser i alla fall ut enligt följande.

private function xmlLoaded(evt:Event) {
var xmlcode = new XML(_loader.data);
trace(xmlcode);

for (var i:int=0; i<xmlcode.image.length(); i++){

var image:URLRequest = new URLRequest(xmlcode.image.thumb[i]);
var imageLoader:Loader = new Loader();
imageLoader.load(image);
imgArray[i]=imageLoader;
addChild (imgArray[i]);
imgArray[i].x = 70*i;
imgArray[i].y = 330;
imgArray.buttonMode = true;
imgArray[i].addEventListener(MouseEvent.MOUSE_DOWN, showBigImg);
trace(xmlcode.image.name[i]);
}
} // End xmlLoaded

Inne i funktionen xmlLoaded har jag även kod som gör så att en thumbnail för respektive bild i night.xml visas. Längre än så här jar jag inte kommit, jag kommer att uppdatera min blogg frekvent allt eftersom att jag arbetar med galleriet.

Jag har för tillfället svårt att veta hur jag ska skriva den kod som ska visa en stor bild när man klickar på en thumbnail. Som ni ser skapar jag en mouseEvent för varje thumbnail, men hur ska jag göra för att programmet ska veta vilken bild som ska visas beroende på vilken thumbnail man klickar på. Det faktum att man inte kan skicka med övriga parametrar när man oberopar en funktion via en eventListener gör inte saken mycket lättare.

Någon som har en ide?


söndag 21 juni 2009

Sommarkodandet har börjat

I två av kurserna gjorde vi ett grupparbete i form av ett projekt. Detta projekt gick ut på att göra en flashapp med hjälp av Actionscript 3 och information som man hämtar från någon XML-källa eller API. Vi gjorde en TV-tablå. Jag vet att det inte var något ovanligt men vi gjorde det för att lära oss så mycket som möjligt. Tro mig, det var ett utmanande projekt.
Såhär ser projektet ut: http://www.sebweb.se/epg.html

Hade vi haft mer tid hade vi gjort snyggare design och rättat till lite småbuggar.

Har sedan länge lovat mig själv att jag över sommaren ska uttöka mina kunskaper inom Actionscript 3 och Flash CS. Detta har börjat idag då jag satte mig i en labbsal i en skolbyggnad för att koda lite.

Idag har jag testat det här med hoppfysik i ett plattformspel. Jag använde mig utav den första delen i en tutorial för att komma igång. Källa: http://www.mrsunstudios.com/2008/08/tutorial-create-a-platform-game-in-as3/

Det jag idag har gjort är en boll som man kan styra med piltangenterna samt att man kan hoppa när man trycker uppåt, vilket inte är så lätt som det verka, speciellt inte om man verkligen vill att det ska flyta på. Jag skiter i designen så länge då det är programmeringsbiten i Actionscript 3 som jag vill lära mig utav.

Är det någon som har någon vettig ide om hur jag ska göra för att man ska kunna hoppa mellan olika plattformar?