PDA

Volledige versie bekijken : Class probleem


Fatty Owl
%Europe/Berlin %697 %2005, 16:44
Ik zit weer met een probleem met mijn classes. het gaat hem om dit:

public function insertKeyFrame(BGcolor:String, StageWidth:Number, StageHeight:Number)

BGcolor is een string, en als ik deze wil toevoegen aan bevoorbeeld linestyle, komt er datatype error :(. di is dus mijn volledige code met de 2 datatype errors. Hiermee kan je dynamisch 'keyFrames' mee toevoegen :). Het werkt perfect, behalve dan het stukje van de kleur:) class Timeline {
private var a:Number = 1;
private var myFrame:MovieClip;
private var allFrames:Array = [];
public function insertKeyFrame(BGcolor:String, StageWidth:Number, StageHeight:Number) {
for (var i:Number = 0; i<allFrames.length; i++) {
allFrames[i]._visible = false;
}
myFrame = _root.createEmptyMovieClip("Frame"+a, _root.getNextHighestDepth());
a++;
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.push(myFrame);
//tot hier doet ie het
}
public function gotoStop(whatFrame:Number) {
allFrames[whatFrame-1].getNextHighestDepth();
for (var i:Number = 0; i<allFrames.length; i++) {
allFrames[i]._visible = false;
}
allFrames[whatFrame-1]._visible = true;
}
public function showRoot(Framenumber:Number) {
for (var i:Number = 0; i<allFrames.length; i++) {
allFrames[i]._visible = false;
}
_root.gotoAndStop(Framenumber);
}
}

SaphuA
%Europe/Berlin %703 %2005, 16:53
Maak er eens een nummer van, en dan ipv: "0x000000" gewoon 0x000000 gebruiken :)

Fatty Owl
%Europe/Berlin %707 %2005, 16:58
haah thx :) Moet ik dit in de AS discussion en showcase, of in de testcase zetten als ik dit wil laten testen/beoordelen :)

Dauntless
%Europe/Berlin %722 %2005, 17:20
Als je je bron wil vrijgen en als je graag hebt dat we je tips geven over je manier van schrijven moet je'm in het AS discussion forum zetten. Anders in de testcase :).

Fatty Owl
%Europe/Berlin %730 %2005, 17:32
ik heb gekozen voor...AS Discussie & showcase forum :) waar hij nu ook staat :)

Fatty Owl
%Europe/Berlin %851 %2005, 20:26
Als ik een functie in een functie wil maken, hoe doe ik dit dan met de variablen. Want ik zit een functie Play() te maken, met een setInterval in. deze verwijst dan naar de functie speel in de functie Play. Maar als ik in de functie speel een variable probeer op te vragen lukt dit niet. (het gaat hem om var allFrames) functie Play: public function Play(tBF:Number, Ftostart:Number) {
var myInterval = setInterval(speel, tBF);
function speel() {
if (Ftostart-1 !== allFrames.length) {
Ftostart++;
allFrames[Ftostart-1].getNextHighestDepth();
trace(allFrames);
for (var i:Number = 0; i<allFrames.length; i++) {

allFrames[i]._visible = false;
}
allFrames[Ftostart-1]._visible = true;
} else {
for (var i:Number = 0; i<allFrames.length; i++) {
allFrames[i]._visible = false;
}
allFrames[0]._visible = true;
}
}
}

Dauntless
%Europe/Berlin %854 %2005, 20:31
Maar waarom wil je nu een functie binnen in een functie aanmaken? Dat is toch voor niets nodig ?

Fatty Owl
%Europe/Berlin %857 %2005, 20:34
This statement is not permitted in a class definition.
setInterval()

Daarom :). Hoe kan ik het anders oplossen met de setInterval, die ik kan aanroepen door Play();?

Dauntless
%Europe/Berlin %860 %2005, 20:39
class Foo
{
private var myInterval:Number;
public function Foo()
{
myInterval = setInterval(this, "run", 500);
}
public function run()
{
trace("run forrest, run!!");
}
}

't Kan ook zijn dat die 'run' private mag zijn... Weet ik niet zeker :). Maar dit zou toch wel moeten werken hoor

Fatty Owl
%Europe/Berlin %868 %2005, 20:50
nu heb ik hem zo, maar nog steeds undefined :( :
private var myInterval:Number;
private var Ftostart:Number;
public function Play(tBF:Number, Frtostart:Number) {
Ftostart = Frtostart;
myInterval = setInterval(Interval, tBF);
}
public function Interval() {
if (Ftostart-1 !== allFrames.length) {
Ftostart++;
allFrames[Ftostart-1].getNextHighestDepth();
trace(allFrames);
for (var i:Number = 0; i<allFrames.length; i++) {
allFrames[i]._visible = false;
}
allFrames[Ftostart-1]._visible = true;
} else {
for (var i:Number = 0; i<allFrames.length; i++) {
allFrames[i]._visible = false;
}
allFrames[0]._visible = true;
}
}

Dauntless
%Europe/Berlin %872 %2005, 20:56
Je setInterval is dan ook anders als mijn voorbeeld!

Fatty Owl
%Europe/Berlin %878 %2005, 21:04
jhaa thx zo werkt hij wel...Waarom eigenlijk. functionname = this, interval = "Interval"?

Dauntless
%Europe/Berlin %879 %2005, 21:06
Zoek maar op in de helpfiles :). Staat er eigenlijk heel duidelijk uitelegd :). (Er zijn meerdere manieren om setInterval te gebruiken namelijk ;)).