(category) LIST of posts

Upload af FLVPlayback skin

Når et skin vælges til videoplayeren, får den i realiteten en sti. Den sti er relativ til den html, der forudsættes at ligge i samme mappe som skin-swf-filen. Dette er et problem hvis swf, video, og skin uploades til en anden mappe end den html som refererer til swf-filen: Swf og video vises fint – men uden skin.

En løsning er at flytte skin-filen over til html-filen.

En anden løsning er at indsætte et script over flv-playerens frame, lige før den skal uploades:

player.skin="den-egentlige-sti-på-serveren-til_SkinOverPlaySeekMute.swf";

En tredje kunne også være et script, der altid lokaliserer skin-urlen i samme mappe som swf-filen:

//get url of loaded movie, so we can set relative path
var skinURL:String = player.skin;
if (skinURL.indexOf("/",0)<0) {
	var swfURL:String = this.loaderInfo.url;
	swfURL = swfURL.substr(0,swfURL.lastIndexOf("/")+1);
	player.skin = swfURL+skinURL;
}

I hvilken forbindelse skal hvem gøre hvad

Skriftlig kontrol over funktionaliteten
Sammenligning med timeline og den manuelle kontrol

I HVILKEN FORBINDELSE – skal – HVEM – GØRE HVAD
Stil spørgsmålet rigtigt, bryd det op
“Jeg vil have man skal klikke på den og så skal den zoome op”

I HVILKEN FORBINDELSE -
På et bestemt tidspunkt (frame)
Kontinuerligt, i intervaller (Event, Timer)
Ved at musen — (Mouse-Event)
Ved en hændelse (Event-typer)
Hvis — (betingelse)

Sørg for at omstændigheder og forbindelser er tilgængelige, registreret, kan måles
trace noget – under den pågældende omstændighed

- HVEM
Objekt (MovieClip, Loader,..)

Sørg for at ojektet findes, er registreret, instancieret
Trace objektets navn, type , egenskaber..

- GØRE HVAD
Method (gotoAndPlay(parameter))
Kalde en funktion ()
Ændre værdi (Property value)
Ændre omstændighederne
Agere med begrænsning, itterativt (betingelser – loops…)
Producere et output (:type return)

Sørg for at funktionen / methoden findes, er registreret – at det den gør kan lade sig gøre, at påkrævede parametre er tilgængelige.
Trace output, type, ..

Knapper i array

var files:Array=new Array("0.swf","1b.swf","3_load text_scroller.swf");
var buts:Array=new Array("but1","but2","but3");
// buts[0] er "but1", buts[1] er "but2", osv.

Her kan loader funktionaliteten indflettes

for (var b:uint; b<buts.length; b++) {
	var but:String=buts[b];
	this[but].addEventListener(MouseEvent.CLICK, butClick);
	// hver but får sin egen variabel:fil med tilknyttet filnavn
	this[but].fil=files[b];
}
function butClick(e:MouseEvent) {
        SoundMixer.stopAll();
	ldr.load(new URLRequest(e.target.fil));
}

FLVPlayback script bits

Grundlæggende scripting til video kontrol

Dynamisk instanciering

(library > properties > export for actionscript)

import fl.video.FLVPlayback;
var player:FLVPlayback = new FLVPlayback();
addChild(player);

(eller – selvfølgeligt: manuelt / automatisk (ved import) indsat FLVPlayback med instancenavnet ‘player’)

Methods

player.play();
player.stop();
player.pause();

Properties

player.autoPlay=false;
player.autoRewind=true;
player.source="nyvideo.flv";

Events

player.addEventListener(Event.COMPLETE, comp);
function comp(e:Event){
	 trace(e.target.name+" is completed");
	 gotoAndStop("some_label"); // for fx. at gå videre til noget nyt
         player.play(); // for loop - om igen
}

Adobes reference for FLVplayback

Flash i html

Problematikker

Den genererede swf-fil skal lejres i en xhtml-fil for at komme på nettet. Der findes standarder, hvad flash i html angår, men udviklingen tager flere retninger. Der skal bl. andet tages hensyn til browser specifik adfærd, søgevenlighed, plugin og versioner, dynamisk indhold, foruden web-standarder.
(et teknisk overblik fra AListApart, Buy Buy Embed og endeligt flashembedcagematch)

Problem:validering Flash-koden som den fremtræder publiceret gennem flash selv, validerer ikke. Det skyldes embed-tag’en, der er ude af standard – at tage den væk vil få koden til at validere, men er ikke nok for at få flash til at virke i flere browsere.

En simplificeret løsning: Til det validerende object-tag, tilføjes et data-atribut (så Firefox kan vise flash), og et movie-parameter (til IE). Dette er den absolut nemmeste løsning d.d.

Valid kode

Den minimale valide kode:

18
19
20
21
22
<div class="FlashMovie">
       <object data="path_to_file/file.swf" type="application/x-shockwave-flash" width="550" height="400">
              <param name="movie" value="path_to_file/file.swf" />               
        </object>
</div>

Søg efter en liste med yderligere (MEGET ANVENDELIGE) parametre – eller se en (ældre) tech-note fra adobe.
Denne kode er sat ind i en div, som så styles til det ønskede position og udseende.

Embed Youtube

Samme grundkode kan bruges i forbindelse med Youtube-videoer indsat i html (som faktisk heller ikke validerer hvis man indsætter direkte fra den genererede kode – derfor omskrivelsen nedenfor):

18
19
20
21
<object data="sti-fra-embed-koden-indsættes-her" type="application/x-shockwave-flash" width="400" height="326">
       <param name="movie" value="sti-fra-embed-koden-indsættes-her" />
       <param name="FlashVars" value="playerMode=embedded" />
</object>

SwfObject

En anden løsning involverer javascript. Der tages alle andre problematikker i betragtning, beskrevet øverst i indledningen – foruden validering.
Mange udvikler på varianter af snedige javascript løsninger, men swfObject synes at være den ledende opsummering af bestræbelserne.
For Øvede – gotoandlearn

Tutorials Publish

fra gotoandlearn – med swfobject 2

Fullscreen toggle button