(category) LIST of posts

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: 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){
	 gotoAndStop("some_label");
	 trace(e.target.name+" is completed");
}

Adobes reference for FLVplayback

HTML CSS Loader

Html filer og cssfiler skal begge loades med URLLoader

//A
	import flash.net.URLRequest;
	import flash.net.URLLoader;
	import flash.text.StyleSheet;
//B
	var htmlLoader:URLLoader = new URLLoader();
	var cssLoader:URLLoader = new URLLoader();
	var sheet:StyleSheet = new StyleSheet();
//C/D - i relevant sammenhæng
	cssLoader.load(new URLRequest("myCSS.css"));
	cssLoader.addEventListener(Event.COMPLETE, onLoadCSS);
	htmlLoader.load(new URLRequest("myHTML.html"));
	htmlLoader.addEventListener(Event.COMPLETE, onLoadHTML);
//D
	function onLoadCSS(e:Event) {
		sheet.parseCSS(e.target.data);
		ttt.styleSheet=sheet;//styling af tekstfelt
	}
	function onLoadHTML(e:Event) {
		ttt.htmlText=e.target.data;//html i tekstfelt
	}

css har det med at skulle loades FØR html.
Bemærk der er ikke så mange html-tags, som fortolkes af flash – og ditto for css-properties.
Se fx. her eller læs eksemplet i LAS3 bogen for at få en liste over brugbare elementer.

Text loader

Forudsætter et dynamisk tekstfelt kaldet:”ttt” og et tekstdokument: “myText.txt”, som kan være lokal eller online.

//A
    import flash.net.URLRequest;
    import flash.net.URLLoader;
//B
    var textLoader:URLLoader = new URLLoader();
//C/D - pLacer i relevant sammenhæng
    textLoader.load(new URLRequest("myText.txt"));
    textLoader.addEventListener(Event.COMPLETE, onLoadText);
//D
    function onLoadText(e:Event) {
        // Hvad der skal ske med den loadede tekst
        trace(e.target.data);
        // Eller // ttt.text=e.target.data;
    }

En tekstfil kan være rå tekst, html, css, xml, eller php mm.
Tekstfelter kan fortolke tekst råt eller html-formateret. (Kun få tags er fortolket i flash. Marker htmlTekst i koden og F1 for at se Adobe’s oversigt over fortolkede tags.)

Class A B C

Dette er en skabelon til en class. Actioncript-filen hedder: ABC.as.

Bemærk fil-navnet, class-navnet og constructor-navnet – som altid skal være ens.

A- B- C- D- er betegnelsen for niveauer, jeg vil referere til for at tydeliggøre strukturen i actionscript og for at gøre det nemt at implementere funktionalitet – (fx. fra andre poster i snippet-kategorien).

package {
    // ::: A ::: // flAAsh clAAsses importeres
    import flash.display.MovieClip;
 
    public class ABC extends MovieClip {       
        // ::: B ::: // variaBBler og oBBjekter BBliver BBrugbare i kommende funktioner
 
        public function ABC() {
        // ::: C ::: // CConstruCCtor - Indledende handlinger
 
        }
        // ::: D ::: // DDiverse funktioner DDu laver DDem
 
    }
}

Emner:
Linke til flash fil, movieclip, instanciering
Samme struktur på en framescript – forskelle – fordele / ulemper
OOP. Genbrug, uden copy-paste. Inheritance, Encapsulation & Polymorphism
Public, Private, Protected, Internal: Access Modifiers

XML loader

Den rå kode for at loade en xml-fil, hvis du har en sådan:

//A
	import flash.net.URLRequest;
	import flash.net.URLLoader;
//B
	var XMLLoader:URLLoader = new URLLoader();
//C/D i relevant sammenhæng
	XMLLoader.load(new URLRequest("adressen_paa_din_xml_fil.xml")); 
	XMLLoader.addEventListener(Event.COMPLETE, onLoadXML);
//D
	function onLoadXML(e:Event):void  {
		var xml:XML = new XML(e.target.data);//xml i en string
		var xmlList:XMLList = new XMLList(xml.children());//emne liste
		trace(xml); //Prøv også: trace(xmlList);
	}

Det er praktisk at trace xml for at få indblik i filens struktur og indhold, hvis den loades fra en internet adresse. Læg mærke til Tagnavne og Atributnavne.
xmlList er nødvendig for at fortolke og få adgang til oplistede emner. Den indeholder nu struktur og data fra xml.

Filtrering af data

Kan sammenlignes med at skrive ’stien’ til det ønskede emne. Forestil dig som 100 årig foran en xml-fil med dine efterkommere:

xmlList.barn.barnebarn.oldebarn; for at nå frem til alle oldebørn.
xmlList.barn.barnebarn.oldebarn[0]; for at få fat i første oldebarn på listen.
xmlList.barn.barnebarn.@foedselsdag; er det samme som:
xmlList.barn.barnebarn.attribute(foedselsdag); for at se børnebørn med atributten: foedselsdag.

RSS Reader

//Paste fx. denne adresse ind i URLLoaderen's URLRequest: 
'http://curlingthebrackets.com/category/flash/feed/'
//og lav denne trace: 
trace(xmlList.item.title);