Nedenfor finner du flere Flash ActionScript for å utføre forskjellige oppgaver. Her har du blant annet printfunksjon, drag and drop, ekstern image loader, mulighet for å pause tidslinjen, laste inn eksterne filer og mye mer. Eksemplene er i Flash ActionScript 2.
Print-funksjon i Flash
Koden for å printe ut innholdet i en movie clip i flash. Koden legges i første keyframe. Husk også å ha et clip ved navn
"container" med innholdet du vil skrive ut (tekst/bilde) i biblioteket som du haker av for
"export for action script" i properties. Lag så en knapp med instance name
"knapp" som du legger på tidslinjen.
For mer informasjon,
les en fullstendig beskrivelse hos Adobe.
_root.knapp.onRelease = function() {
//starter funksjonen
_root.attachMovie("container", "container", 0);
//laster inn movie clip fra library med navn "container". Gir så nytt navn og angir dybde/synlighet print
(_root.container, "bframe");
//printfunksjonen for objektet/instance name som skal skrives ut, og hvordan innholdet i keyframe skal skaleres
_root.container.unloadMovie();
//fjerner clip fra library fra hovedtidslinjen };
Laste inn ekstern SWF i movie clip
Sett inn følgende action i din keyframe i hovedtidslinjen når du vil at den eksterne filen skal lastes (husk instance name for din movie clip-plassholder):
mittnavn.loadMovie("minfilm.swf");
Lage et videobanner
Se mer om nødvendig AS-kode og
last ned eksempelfiler på hjemmesiden til Adobe.
Lightbox fra Flash
Hvordan du aktiviserer en lightbox fra en flashfil - lett forklart.
Scrolling content
Lag innhold i Flash med scrollbar. Praktisk for tekstbokser o.l. Les mer om skinning av denne komponenten hos Adobe.
Deeplinking i Flash
Sørg for at det går an å lagre bokmerker i din flashfilm på nett - og at Google klarer å indeksere linkene i din SWF.
http://www.asual.com/swfaddress/
Laste inn eksternt stilark (CSS) i Flash
Sett inn følgende action i første keyframe på ditt flashdokument (endre banen til stilarket etter behov) og lag så en dynamisk tekstboks som heter
"tekstboks". NB: husk å fjerne første linje (
@charset "UTF-8";) hvis Dreamweaver genererer stilarket for deg, ellers vil Flash ikke lese det:
//for aktivisering av stilarket
stilarkStyle = new TextField.StyleSheet();
stilarkStyle.load("mittstilark.css");
tekstboks.styleSheet = stilarkStyle;
//for aktivisering av tekstfeltet med egenskaper
tekstboks.html = true;
tekstboks.wordWrap = true;
tekstboks.multiline = true;
tekstboks.selectable = false;
tekstboks.label.condenseWhite=true;
Laste inn eksternt ActionScript-dokument
Husk å lagre dokumentet som inneholder ditt ActionScript i formatet
"mittdokument.as". Legg så følgende kode i første keyframe på ditt flashdokument (endre banen etter behov):
#include "mittactionscript.as"
Constrained Drag and Drop
For å flytte et objekt i en movie clip innenfor et avgrenset område (koordinater). Lag en movieclip som inneholder grafikken som du ønsker å flytte rundt på skjermen. Husk å gi ditt movie clip et instance name (i dette tilfellet
"SmileyFace"). Legg så til følgende script i keyframe 1 i din hovedtidslinje:
smileyFace.onPress = function():Void {
this.startDrag(false, 50, 50, 300, 150);
};
smileyFace.onRelease = function():Void {
this.stopDrag();
};
Image loader
Lag et tomt movie clip som plassholder med et instance name (f.eks.
"holder"). Legg så følgende actionscript i en keyframe i hovedtidslinjen:
var photo:MovieClipLoader = new MovieClipLoader();
photo.loadClip("mittbilde.jpg", holder);
var listener:Object = new Object();
listener.onLoadInit = function():Void {
holder._xscale = 45;
holder._yscale = 45;
}
photo.addListener(listener);
Pause tidslinjen
Praktisk for effekter i film el.l. Se nedenstående kode:
//koden legges inn i første keyframe på ditt flashdokument
function pauseTimeline(howLong:Number):Void { // 2. typen funksjon - det første parameteret
stop();
var id:Number = setInterval( // 1. denne funksjonen setter igang det første parameteret - kontinuerlig
function():Void {
play();
clearInterval(id); // 4. forteller "stoppeklokken" å slutte å kjøre setInterval (1) etter én gang
},
howLong // 3. det andre parameteret definerer hvor lenge det skal ventes i milisekunder
);
};
//denne koden legges i den keyframen hvor du vil at avspilleren skal stoppe
pauseTimeline(2000); //angi tiden tidslinjen skal stoppe for i milisekunder
Fjerne høyremeny
Sett inn denne koden i første keyframe i flashdokumentet ditt:
//lage en ny høyreklikkmeny som heter "rightClick"
var rightClick:ContextMenu = new ContextMenu();
//skjule de innebygde valgene i høyreklikkmenyen
rightClick.hideBuiltInItems();
//gjøre de nødvendige endringene på høyreklikkmenyen
_root.menu = rightClick;
Lage en egen høyreklikkmeny i Flash
Sett inn denne koden i første keyframe i flashfilen (tilpass etter behov):
//denne funksjonen gjør ingenting
function deadClick () {
}
//linken som du vil ha i din kontekstmeny
function gotoMySite () {
getURL("http://www.frontal.no", "_blank");
}
//her erstattes standard kontekstmeny med din egen
var myMenu:ContextMenu = new ContextMenu();
//her skjules standard kontekstmeny
myMenu.hideBuiltInItems();
//selve innholdet i kontekstmenyen
var copyrightNotice:ContextMenuItem = new ContextMenuItem("20©11 Frontal", deadClick);
var mySiteLink:ContextMenuItem = new ContextMenuItem("Frontal", gotoMySite);
var myNotice:ContextMenuItem = new ContextMenuItem("Have gun. Will travel.", deadClick);
//setter inn en skillelinje mellom objekter
mySiteLink.separatorBefore = true;
//fjerner klikkbarhet i objekter og "gråer" de ut
copyrightNotice.enabled = false;
myNotice.enabled = false;
//rekkefølgen som objektene i kontekstmenyen skal ha
myMenu.customItems.push(copyrightNotice, mySiteLink, myNotice);
_root.menu = myMenu;
Enkel getURL og goto
For åpning av eksterne sider og filer samt enkel animasjon:
//denne kommandoen åpner en ekstern webside i et nytt vindu - koden bør legges direkte på en knapp el.l.
on (release) {
getURL("http://www.vg.no", "_blank");
}
//denne funksjonen lar deg hoppe direkte til en framelabel - her trenger du et symbol med instance-name "knapp"
_root.knapp.onRelease = function () {
_level0.gotoAndStop("off");
}
Legg fullskjerm-kommando på knapp el. klipp
Her henviser koden til en movieclip med navnet "knapp" som inneholder to keyframes - en med "av"- og en med "på"-symbol:
_root.knapp.onRelease = function () {
if (_root.knapp._currentFrame == 1) {
_root.knapp.gotoAndStop(2);
} else {
_root.knapp.gotoAndStop(1);
}
if(Stage["displayState"]=="normal") {
Stage["displayState"]="fullScreen";
} else {
Stage["displayState"]="normal";
}
}
Lage tilfeldig fallende snø i Flash
Koden under legges direkte PÅ en movieclip (høyreklikk på MC):
onClipEvent (load) {
//spesifiserer størrelsen til flashfilen (stage)
movieWidth = 300;
movieHeight = 200;
//variabler som modifiserer den fallende snøen
i = 1+Math.random()*2;
k = -Math.PI+Math.random()*Math.PI;
//hvert snøflak får en unik karakteristikk
this._xscale = this._yscale=50+Math.random()*100;
this._alpha = 75+Math.random()*100;
this._x = -10+Math.random()*movieWidth;
this._y = -10+Math.random()*movieHeight;
}
onClipEvent (enterFrame) {
//alt settes sammen
rad += (k/180)*Math.PI;
this._x -= Math.cos(rad);
this._y += i;
if (this._y>=movieHeight) {
this._y = -5;
}
if ((this._x>=movieWidth) || (this._x<=0)) {
this._x = -10+Math.random()*movieWidth;
this._y = -5;
}
}
//koden under legges i første keyframe på din film
for (k=0; k<50; k++) { // antall snøflak
duplicateMovieClip(this.snow, "snow"+k, k);
}
Sende tekst til tekstboks ved klikk på knapp
Nedenstående kode legges i en keyframe. Husk å lage en knapp med instance-name "btn" og et input-tekstfelt med instance-name "inputanswer":
var pos_num:Number = 0;
btn.onPress = function() {
var i:Number = pos_num;
var str:String = inputanswer.text;
inputanswer.text = str.substring(0, i)+"Dette er en test"+str.substring(i, str.length);
};
inputanswer.onChanged = getCaretPos;
var keyListener:Object = new Object();
keyListener.onKeyUp = getCaretPos;
Key.addListener(keyListener);
var mouseListener:Object = new Object();
mouseListener.onMouseUp = getCaretPos;
Mouse.addListener(mouseListener);
function getCaretPos() {
if (Selection.getFocus() == null) {
Selection.setFocus("inputanswer");
Selection.setSelection(pos_num+1, pos_num+1);
}
pos_num = Selection.getCaretIndex();
}
}