Arkiv for juni 2007

Laver du inline eller ekstern ActionScript kode? Stem nu!

torsdag, 28. juni 2007

Kom til at snakke med en kollega om fordelingen, og så var det jo oplagt med en poll.

Med inline kode forståes ActionScript som er skrevet på frames inde i selve fla-filen.
Med ekstern kode forståes ActionScript som er skrevet i en seperat as-fil, hvad enten den er skrevet i Flash eller en anden kodeeditor.

Opdatering
Har fjernet afstemningen da den gjorde siden sløv, men her er resultaterne efter 20 stemmer:

Hvor skriver du det meste af din ActionScript kode?
Al koden inline i fla-filer: 35%
Hovedparten af koden inline i fla-filen: 10%
50/50: 10%
Hovedparten i en ekstern as-fil: 25%
Al kode i en ekstern as-fil: 20%

Ganske interessant, at der er præcis lige mange på hver side af 50/50, så begge tilgange bruges åbenbart lige meget.

Nye bannerstandarder fra FDIM

mandag, 25. juni 2007

FDIM (Foreningen af Danske InternetMedier), som er brancheforeningen for de danske websites der lever af at sælge annoncer, har netop offenliggjort en revideret udgave af deres standarder for bannerannoncering.
Det er jo noget der i den grad påvirker os som lever af at producere bannerne, så derfor er det vigtigt at være up-to-date.

Du kan se dem her:
FDIM - Annonceformater

De to vigtigste ændringer i standarderne er:

Flere kilobyte
Over hele linien er antal tilladte kilobytes blevet hævet væsentligt, for 728×90 er den for eksempel steget fra 25kb til 40kb, hvilket åbner for nogle nye muligheder og generelt gør det muligt at øge kvaliteten.

Nye formater
Jeg kan ikke lave en komplet liste over nye formater, da jeg ikke ligger inde med de gamle standarder og derfor kun har min hukommelse til hjælp, men der er kommet flere nye formater til.
De vigtigste i den forbindelse er nok 930×180 og 930×90 som er de formater der gennem længere tid er blevet brugt på bl.a. Politiken.

Et ærværdigt formål, men…
Jeg synes at det er en rigtig, rigtig god ide med nogle standarder inden for dette område, da det gør livet lettere for både annoncører, mediebureauer og dem der som os skal producere materialet.

Men, når det så er sagt, så synes jeg at disse standarder lader meget tilbage at ønske!

12 formater!
Et af mine største kritikpunkter er, at der er hele 12 formater!
6 standarder og 6 formater som “FDIM også anbefaler” (står intet om hvad forskellen på de to grupper er?), og det er efter mine mening simpelthen for mange. Et af de vigtigste formål med en standard må vel netop være at få luget ud i antallet?

Det virker på mig lidt som om, at dem der har holdt møde om det, blot har gået deres egne sites igennem for de formater som de tilbyder, og så sørget for at alle de var med på listen.

Der skal naturligvis være plads til diversitet på de forskellige sites, hvilket gør at det kan være svært at skære i listen, men så ville det være optimalt at man havde vedtaget at alle medlemmer af FDIM var forpligtet til at have 1 eller 2 af formaterne, eksempelvis 728×90 og 300×250.

Mystiske kilobyte begrænsninger
Et 728×90 banner har et pixelareal på 65.520.
Et 930×180 banner har et pixel areal på 167.400.

Men på trods af den store forskel i areal, så må de fylde præcis det samme, nemlig 40kb, hvilket jeg ikke helt forstår.
Det er jo intet værd at have et kæmpe banner, hvis man er nød til at komprimere tingene dobbelt så meget, så de ser grimme ud.

For overskuelighedens skyld er det fair nok at man har tilstræbt at hvert banner ikke har sin helt egen størrelse, da det bliver svært at holde styr på, men mere plads til de største formater ville stadig være en god ting.

Loops og animation
I standarderne er der også en anbefaling angående loops og animation der lyder som følger:
- Max 3 loops pr. bannerannonce
- Animation 15 sekunder eller 45 sekunder i alt

Det er fint at man vil beskytte brugerne mod generende annoncer der bliver ved og ved og ved med at animere og forstyrre.
Men hvorfor ikke bare forenkle reglerne til at animation maksimum må vare i 15 sekunder?

Synes at det virker mærkeligt, at man godt må forstyrre brugerne i 45 sekunder, bare det ikke er den samme animation der looper.
Mener, man kan jo sagtens lave noget ekstremt irriterende, men som ikke er en præcis gentagelse af det foregående.

Streamingtid
Et sted står der at et videostream kun skal aktiveres når brugeren holder musen over det, og et andet sted står der at et videostream maksimum skal vare 60 sekunder.

Men hvorfor sætte en tidsbegrænsning på?

Hvis brugeren selv skal aktivere streamet, så må man vil også formode at hun selv fjerner musen igen når hun ikke gider se mere, uanfægtet og streamet varer 10 sekunder eller 2 timer.

Ingen anbefaling vedr. clickTag
For dem der ikke ved det, så er clickTag en lille stump kode der placeres i banneret, for at de forskellige reklamesystemer kan holde styr på hvor mange der har klikket på det.

Den kan eksempelvis se sådan her ud:

on (release) {
	getURL (_root.clickTag, "_blank");
}

Men problemet i dag er, at variablen nogen steder hedder ClickTag med stort C, clicktag kun med småt eller noget helt tredje.
Det gør at man selv skal lave noget ekstra kode der tester på hvilke værdier der er defineret og hvilke der er tomme, eller simpelthen manuelt lave flere versioner af banneret.

Totalt tidsspilde og en ting som det ville være ekstremt nemt at lave en standard for da alle de store reklamesystemer håndterer det stort set identisk.

Summa summarum
Det var tiltrængt med en opdatering af de gamle standarder som havde en hel del år på bagen, men når det er sagt, så synes jeg at de nye standarder bærer for meget præg af at være lavet uden at man har snakket med nogen af dem som producerer bannerne, og det er en skam.

OOP og AS3: Lav en myre sværm

onsdag, 20. juni 2007

En super lille tutorial som både forklarer lidt om OOP (Object Oriented Programming) samt viser hvordan man kan implementere det via AS3. Absolut værd at læse:
Object Orientation : Creating an ant swarm

Kan du stå inde for dine kunder?

mandag, 18. juni 2007

En af de bedste ting ved at være selvstændig er at man selv kan bestemme hvad man vil lave og hvem man vil lave det til.
Ja ja, biksen skal naturligvis køre rundt, men er det en undskyldning for at sælge sig selv til djævlen?

For at komme med et konkret eksempel, så skulle jeg i mit gamle arbejde lave noget markedsføringsmateriale for en udbyder af hurtige lån, du ved, de der “lån 200.000 på kun et kvarter” firmaer, og det brød jeg mig ikke om!

Den slags firmaer lever hovedsageligt af folks uvidenhed, af at narre “svage sjæle” til ikke at gå ned i banken og låne pengene til en fornuftig rente, men til at vælge den nemme vej ud, en vej der for nogen kan ende i finiansiel ruin, hvilket fører en lang række andre problemer med sig.
Alt i alt, så følte jeg ikke at jeg kunne stå inde for det firma og deres produkt, og derfor gav det mig en dårlig smag i munden at lave reklame for det.

Nemme lån ligger måske lige på kanten, men hvad med et tobaksfirma?
Alkoholsodavand specifikt rettet mod børn?
Morgenmadsprodukter stopfyldt med sukker?

Ja, der findes mange eksempler, og prøv at forestille dig hvad der ville ske hvis alle de folk som stod for markedsføringen sagde nej tak, så ville der ikke blive reklameret for de produkter, og dermed ville de lide den sikre død.

Så, næste gang du skal lave noget for nogen, så tænk for dig selv: Kan jeg stå inde for det her?

NB: Dette indlæg er inspireret af Seth Godin og et indlæg som han lavede for et stykke tid siden: Responsibility

Kom godt igang med buttons i ActionScript 3

torsdag, 14. juni 2007

I AS3 har måden man arbejder med buttons, som næsten alt andet, ændret sig lidt, og derfor er her en hurtig gennemgang så du kan komme godt igang med dem, blandt andet også et eksempel på den nye mulighed for at detecte dobbeltklik.

I forhold til AS2 er der to store ændringer:
- Ingen kode på knappen
- onRelease er blevet til MouseEvent.CLICK

Og et par tilføjelser:
- MouseEvent.DOUBLE_CLICK
- Nye properties der sendes med når der bliver klikket

Men, lad os tage dem fra en ende af:

Ingen kode på knappen
Ja, du læste rigtigt. I ActionScript 3 kan en designer (eller andre som lige skal lave et hack) ikke længere tilføje kode direkte på selve knappen, den skal tilføjes på en keyframe.

Det er både godt og skidt. På den ene side tvinger den alle til at gøre det på den rigtige måde, og gør det dermed nemmere at overskue hvor der er kode og hvor der ikke er. Men på den anden side kan det gøre det lidt mere besværligt for en designer, som lige skal lave en hurtigt demo på en menu eller lignende.

onRelease er blevet til MouseEvent.CLICK
Den kode som man skal skrive i keyframen for at fange klikket har ændret sig lidt.

AS2:

my_btn.onRelease = minFunktion;
function minFunktion():void {
   trace("klik");
}

AS3:

import flash.events.MouseEvent;

my_btn.addEventListener(MouseEvent.CLICK, mySingle);
function mySingle(event:MouseEvent):void {
	trace("enkelt klik");
}

Import skal kun være der én gang, uanset hvor mange knapper eller events du har.

Så, alt i alt ikke den helt store ændring der, omend det altid er svært at huske i starten.

MouseEvent.DOUBLE_CLICK
Som jeg skrev kan man nu også detecte dobbeltklik, og det gøres stort set ligesom med et enkelt klik:

import flash.events.MouseEvent;

my_btn.addEventListener(MouseEvent.DOUBLE_CLICK, myDouble);
my_btn.doubleClickEnabled = true;
function myDouble(event:MouseEvent):void {
	trace("dobbelt klik");
}

I stedet for modtage eventen MouseEvent.CLICK bruger man i stedet MouseEvent.DOUBLE_CLICK, og så skal man også huske at sætte doubleClickEnabled = true.

Man kunne naturligvis også detecte dobbeltklik i AS2, men her skulle man skrive en skræddersyet funktion til det, og fordelen ved den nye event er også at den bruger de indstillinger for dobbeltklikshastighed som brugeren selv har sat i operativsystemet.

Nye properties der sendes med når der bliver klikket
Som du har kunnet se på koden, så har der til funktionen været medsendt et event:MouseEvent.
Dette event-objekt indeholder nogle yderligere værdier som kan være ganske nyttig:

ctrlKey: True hvis ctrl blev holdt nede
shiftKey: True hvis shift blev holdt nede
currentTarget: Det objekt der blev klikket på
localX og localY: Lokal _x og _y værdi for musepilen i det øjeblik eventen skete
stageX og stageY: Global _x og _y værdi for musepilen i det øjeblik eventen skete

Her et eksempel med ctrlKey, men det fungerer naturligvis lige sådan for de andre værdier:

import flash.events.MouseEvent;

my_btn.addEventListener(MouseEvent.CLICK, mySingle);
function mySingle(event:MouseEvent):void {
	trace("enkelt klik");
	trace("ctrlKey: " +  event.ctrlKey);
}

Det var lige et par hurtige tip til at komme godt igang med buttons i ActionScript 3, god fornøjelse!

NB: Der er også sket andre ting end dem jeg har nævnt i denne artikel, men disse vurderede jeg som værende de mest interessante, kig i dokumentationen for at få det fulde overblik.

Tilføjelse: 2 knapper
Jeg fik en mail fra en som spurgte hvad man gør hvis man har mere end én knap, og det kan man umiddelbart gribe an på 2 måder.

Den ene mulighed er ved at have 2 funktioner, en til hver knap:

my1_btn.addEventListener(MouseEvent.CLICK, myFunction1);
function myFunction1(event:MouseEvent):void {
	trace("klik på knap 1")
}

my2_btn.addEventListener(MouseEvent.CLICK, myFunction2);
function myFunction2(event:MouseEvent):void {
	trace("klik på knap 2")
}

Den anden måde er kun at have en funktion, men i stedet teste hvilken knap der blev trykket på, og det er her at event-objektet pludselig bliver nyttigt:

my1_btn.addEventListener(MouseEvent.CLICK, myFunction);
my2_btn.addEventListener(MouseEvent.CLICK, myFunction);
function myFunction(event:MouseEvent):void {
	if(event.currentTarget == my1_btn) {
		trace("klik på knap 1")
	} else if(event.currentTarget == my2_btn) {
		trace("klik på knap 2");
	}
}

Hvornår man vælger den ene tilgang fremfor den anden er lidt en smagssag, typisk bruger jeg selv flere funktioner hvis knapperne gør noget meget forskelligt, mens jeg kun har en funktion hvis de gør næsten det samme, eksempelvis hvis de er en del af en menu.

Kampen for et godt udgangspunkt

torsdag, 14. juni 2007

Oftere og oftere når jeg beder om materiale (logo, skrifttyper, billeder m.m.) får jeg blot en mail retur med et link til et eksisterende website og besked om at nappe det jeg skal bruge derfra. Det er særligt udpræget når der er tale om danske versioner af kampagner som også kører i udlandet.

Det er der en række problemer i:

  1. Man skal bruge en masse ekstra tid på at decompile det eksisterende site
  2. Fonte kan ikke nappes på den måde
  3. Billeder og anden grafik som ikke er vector-baseret er allerede skaleret og komprimeret
  4. Man har kun adgang til en begrænset del af materialet

Alt i alt er det en række ting som er med til at begrænse mulighederne for hvad man kan lave samt kvaliteten af slutproduktet, men det synes jeg kan være ufattelig svært at forklare kunden.

Støder i andre ind i det samme problem, og hvis ja, hvordan griber i det an?

Se mor, så er vi i luften!

fredag, 8. juni 2007

Se mor! Digital konceptudvikling og designDet tog lidt længere tid end beregnet, sådan er det jo når der er travlt, men nu er vi glade for endelig at kunne præsentere websitet til Se mor!

Mere er der sådan set ikke at sige, så tag et kig på:
Se mor! Digital konceptudvikling og design

Næste punkt på dagsordenen må vidst være at få givet bloggen her en ansigtsløftning.

.Net haj søges!

torsdag, 7. juni 2007

Vi er for tiden i gang med et temmelig stort projekt, hvor vi til den sidste slutspurt godt kunne bruge en ekstra .Net haj.

Hovedkvalifikationen er at du har helt styr på C# og solidt kendskab til MS SQL, men derudover er det en fordel hvis du også har styr på XSLT og AJAX.

Du skal kunne starte inden for en uges tid og være i stand til arbejde onsite herude på Holmen hvor vi holder til.

Lyder det interessant?
Så smid mig en mail på den adresse som stårt øverst i højre side. Skriv lidt om dine kvalifikationer, gerne med konkrete eksempler på ting du tidligere har lavet, samt lidt om hvad du forventer at få for det.

Har du ikke mulighed for at være med i denne omgang på grund af det korte varsel, men gerne vil i betragtning til fremtidige opgaver, så er du også velkommen til at maile.

Finder Flash CS3 ikke klassen? Så genstart!

tirsdag, 5. juni 2007

Et lille hurtigt tip fra mig som har brugt 3 timer af Grundlovsdag på et særdeles irriterende problem:
Hvis Flash CS3 ikke kan finde en klasse, selvom den ligger hvor den burde, så prøv at genstarte din maskine inden du (som mig) bruger timer på at lede efter bugs.

Det virkede i hvert fald i mit tilfælde, og nu må jeg hellere få lavet noget produktivt.

Dofus - MMORPG lavet i Flash

lørdag, 2. juni 2007

Dofus logoDer er nogen ting jeg kan blive chokeret/overrasket over at jeg ikke har hørt om eller lagt mærke til, og Dofus hører så absolut til i den kategori.

Der er nemlig tale om intet mindre end et komplet MMORPG, lanceret helt tilbage i efteråret 2005, som er lavet 100% i Flash!
Stilmæssigt er der tale om en super lækker isometrisk 2D-stil, som på trods af at det er lidt oldschool holder hele vejen igennem.

Universet i spillet er mig bekendt helt nyt, og derfor er det lidt tungt at komme igang med, da man starter helt forfra.
Er jo ikke helt indlysende at en Crâ eksempelvis er en jæger i stil med hunteren fra World of Warcraft.

Screenshot:
Dofus screenshot

Vurderet udfra spillets stil og prissætningen (kan prøves gratis, adgang til alle funktioner koster 5€ pr. måned) er hovedmålgruppen nok de 9-14 årige, for havde spillet ikke været på engelsk er jeg ikke i tvivl om at min nevø sagtens ville kunne finde ud af det, men det kræver en rimeligt god forståelse for at finde ud af hvordan man løser forskellige opgaver m.m.

Faktisk, så tror jeg godt at man med fordel ville kunne inddrage sådan et spil i engelsk-undervisningen i skolen, for udover at læse engelsk skal man jo også kommunikere med de andre spillere når der skal dannes grupper, og da stilen er som den er, er der hverken blod eller andre ting der kan genere sarte sjæle.

For mig vil spillet i hvert fald have et vigtigt formål.
Hver gang jeg fremover sidder med et kompliceret problem i ActionScript, så tror jeg at jeg vil logge ind og spille i 5 minutter, for derefter vil mit eget problem ganske givet være blegnet lidt.

Du kan prøve spillet her:
Dofus