(category) LIST of posts

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));
}

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.)

Tutorials Textfield

dynamisk scrollbar
custom scrollbar

Dynamisk textField

TextField

//A
	import flash.text.TextField; 
//B
	var ttt:TextField=new TextField();
//D
	function makeTextField() {
		ttt.wordWrap=true;
		ttt.mouseWheelEnabled=true;
		/*
		ttt.border=true;
		ttt.borderColor=0xFF0000;
		ttt.background=true;
		ttt.backgroundColor=0xFF00FF;
		*/
		ttt.x=10;
		ttt.y=10;
		ttt.width=335;
		ttt.height=325;
		addChild(ttt);
	}
//C/D 
//Placeres i scriptet hvor der er behov for det:
//Alene i constructoren eller i anden relevant funktion-sammenhæng
	makeTextField();
	ttt.text="En eller anden text";
	// Kan også sættes til at være html
	ttt.htmlText="En lille tekst med taggen <b>b</b> og <i>i</i>";

Mange tilgængelige properties for textField – marker ordet textField i codevindue og tryk F1, for at se Adobes reference. Det samme gælder for textFormat nedenfor.

TextFormat

Yderligere formatering i tekstboksen kan styres med textFormat:

//A
	import flash.text.TextFormat;
//B
	var tfFormat = new TextFormat();
//D
	function formatTextField() {
		tfFormat.color="0x0000FF";
		tfFormat.size=40;	
		tfFormat.leftMargin =20;
		tfFormat.rightMargin =20;
	}
//C/D // i relevant sammenhæng
// fx. i begyndelsen af makeTextField
	formatTextField();
	ttt.defaultTextFormat=tfFormat;

UIScrollBar

Det ER muligt at generere en scrollbar dynamisk, men den skal være i Library først! Træk en scrolbar-component ind på scenen og lav evt. om på grafikdelene, for derefter at SLETTE DEN IGEN. Så vil den være i Library og være tilgængelig for actionScript.

//A
        import fl.controls.*;
//B
        var VScroller:UIScrollBar = new UIScrollBar();
//D
	function makeScroller() {
            VScroller.direction = ScrollBarDirection.VERTICAL;
            VScroller.scrollTarget = ttt;
            VScroller.height= ttt.height;
            VScroller.move(ttt.x + ttt.width, ttt.y);
            addChild(VScroller);
        }
//C/D // i relevant sammenhæng
// fx. efter makeTextField();
	makeScroller();
// Hvergang teksten er blevet ændret
// fx. i forbindelse med ny load
	VScroller.update();