Fatty Owl
%Europe/Berlin %730 %2005, 17:31
Ik heb een klein classje gemaakt om via AS frames toe te voegen en verwijderen. Graag commentaar :)
Gebuik
Eerst maak je een nieuwe tijdlijn:
var myTimeline:Timeline = new Timeline()
*update: Voor je begint moet je nu ook eerst de functie setRoot aanroepen:
myTimeline.setRoot(this)
/*this veranderen door je root timeline*/
deze kan je dan ook opvragen door getRoot:
myTimeline.getRoot()
de insertKeyFrame functie maakt dus eigenlijk een nieuwe keyFrame. Dit doe je zo:
myTimeline.insertKeyFrame(deFrameWaarinJeEenKeyFra meWil, AchtergrondkleurVanJeMovie, BreedteVanStage, HoogteVanStage)
Deze keyframe wordt automatisch naar overgesprongen. Je spreekt een keyFrame aan door:
Frame1.lineStyle(10,0x00000, 100)
(de lineStyle functie moet je vervangen door jouw gewenste functie)
*update: De huidige frame kan je opvragen door:
myTimeline.getCurrentframe()
De functie gotoStop. Hiermee ga je naar een met AS aangmaakte frame.
myTimeline.gotoStop(1)
/*het nummer van je gemaakte frame*/
Met de functie hideTimeline, kan je naar een frame in de hoofdtijdlijn gaan.
myTimeline.hideTimeline(1)
/*het nummer van de frame in de hoofdtijdlijn*/
*update: De functie Play();, hiermee laat je je tijdlijn afspelen.
myTimeline.Play(100, 1)
/*100 kan je vervangen door de snelheid tussen frames. 100 komt overeen met 10fps, omdat 100 1/10de van 1000 is.(Het wordt uitgedrukt in miliseconden). De 1 kan je vervangen door
de frame waar je wil beginnen spelen.*/
*update: De functie Stop();. Hiermee onderbreek je de functie Play();.
myTimeline.Stop();
De class
class Timeline {
private var a:Number = 1;
public var myFrame:MovieClip;
public var allFrames:Array = [];
private var root:MovieClip;
private var myInterval:Number;
private var Ftostart:Number;
private var vStop:Boolean = false;
var g:Number;
public function setRoot(youreRoot) {
root = youreRoot;
}
public function getRoot() {
return root;
}
public function insertKeyFrame(a, BGcolor:Number, StageWidth:Number, StageHeight:Number) {
hideTimeline();
myFrame = root.createEmptyMovieClip("Frame"+a, root.getNextHighestDepth());
myFrame.lineStyle(1, BGcolor, 100);
myFrame.beginFill(BGcolor, 100);
myFrame.lineTo(0, StageHeight);
myFrame.lineTo(StageWidth, StageHeight);
myFrame.lineTo(StageWidth, 0);
myFrame.lineTo(0, 0);
myFrame.endFill();
myFrame._width = StageWidth;
myFrame._height = StageHeight;
allFrames[a-1] = myFrame;
}
public function getCurrentframe(currentframe) {
return myFrame;
}
public function gotoStop(whatFrame:Number) {
hideTimeline();
allFrames[whatFrame-1]._visible = true;
}
public function hideTimeline() {
for (var c:Number = 0; c<allFrames.length; c++) {
allFrames[c]._visible = false;
}
}
public function Play(tBF:Number, Frtostart:Number) {
vStop = false;
g = Frtostart;
myInterval = setInterval(this, "Interval", tBF);
}
private function Interval() {
hideTimeline();
gotoStop(g);
if (g>0 && g<allFrames.length) {
g++;
} else if (g>allFrames.length-1) {
g = 1;
}
if (vStop) {
clearInterval(myInterval);
vStop = false;
}
}
public function Stop() {
vStop = true;
}
}
Gebuik
Eerst maak je een nieuwe tijdlijn:
var myTimeline:Timeline = new Timeline()
*update: Voor je begint moet je nu ook eerst de functie setRoot aanroepen:
myTimeline.setRoot(this)
/*this veranderen door je root timeline*/
deze kan je dan ook opvragen door getRoot:
myTimeline.getRoot()
de insertKeyFrame functie maakt dus eigenlijk een nieuwe keyFrame. Dit doe je zo:
myTimeline.insertKeyFrame(deFrameWaarinJeEenKeyFra meWil, AchtergrondkleurVanJeMovie, BreedteVanStage, HoogteVanStage)
Deze keyframe wordt automatisch naar overgesprongen. Je spreekt een keyFrame aan door:
Frame1.lineStyle(10,0x00000, 100)
(de lineStyle functie moet je vervangen door jouw gewenste functie)
*update: De huidige frame kan je opvragen door:
myTimeline.getCurrentframe()
De functie gotoStop. Hiermee ga je naar een met AS aangmaakte frame.
myTimeline.gotoStop(1)
/*het nummer van je gemaakte frame*/
Met de functie hideTimeline, kan je naar een frame in de hoofdtijdlijn gaan.
myTimeline.hideTimeline(1)
/*het nummer van de frame in de hoofdtijdlijn*/
*update: De functie Play();, hiermee laat je je tijdlijn afspelen.
myTimeline.Play(100, 1)
/*100 kan je vervangen door de snelheid tussen frames. 100 komt overeen met 10fps, omdat 100 1/10de van 1000 is.(Het wordt uitgedrukt in miliseconden). De 1 kan je vervangen door
de frame waar je wil beginnen spelen.*/
*update: De functie Stop();. Hiermee onderbreek je de functie Play();.
myTimeline.Stop();
De class
class Timeline {
private var a:Number = 1;
public var myFrame:MovieClip;
public var allFrames:Array = [];
private var root:MovieClip;
private var myInterval:Number;
private var Ftostart:Number;
private var vStop:Boolean = false;
var g:Number;
public function setRoot(youreRoot) {
root = youreRoot;
}
public function getRoot() {
return root;
}
public function insertKeyFrame(a, BGcolor:Number, StageWidth:Number, StageHeight:Number) {
hideTimeline();
myFrame = root.createEmptyMovieClip("Frame"+a, root.getNextHighestDepth());
myFrame.lineStyle(1, BGcolor, 100);
myFrame.beginFill(BGcolor, 100);
myFrame.lineTo(0, StageHeight);
myFrame.lineTo(StageWidth, StageHeight);
myFrame.lineTo(StageWidth, 0);
myFrame.lineTo(0, 0);
myFrame.endFill();
myFrame._width = StageWidth;
myFrame._height = StageHeight;
allFrames[a-1] = myFrame;
}
public function getCurrentframe(currentframe) {
return myFrame;
}
public function gotoStop(whatFrame:Number) {
hideTimeline();
allFrames[whatFrame-1]._visible = true;
}
public function hideTimeline() {
for (var c:Number = 0; c<allFrames.length; c++) {
allFrames[c]._visible = false;
}
}
public function Play(tBF:Number, Frtostart:Number) {
vStop = false;
g = Frtostart;
myInterval = setInterval(this, "Interval", tBF);
}
private function Interval() {
hideTimeline();
gotoStop(g);
if (g>0 && g<allFrames.length) {
g++;
} else if (g>allFrames.length-1) {
g = 1;
}
if (vStop) {
clearInterval(myInterval);
vStop = false;
}
}
public function Stop() {
vStop = true;
}
}