PDA

Volledige versie bekijken : foutmelding in "as" mp3Player van gotoandlearn.


stik
%Europe/Berlin %926 %2007, 23:13
Ik ben een beginnende actionscript'er en ben nu met enkele tutorials bezig van de site gotoandlearn (tip van flasfreaks om as te leren).
Ik heb voor de mp3 player de eerste tutorial gevolgd en wanneer ik deze test een een foutmelding.

\mp3Player.as: Line 28: '{' expected

De actionscript die ik aan de hand van de tutorial had geschreven is

// setup sound object
var s:Sound = new Sound();
s.onSoundComplete=playSong;
s.setVolume(75);

//Array of songs
var sa:Array=new Array();

//Currently playing song
var cps:Number=-1;

//load the songs XML
var xml:XML=new XML();
xml.ignoreWhite=true;
xml.onLoad=function()
{
var nodes:Array=this.firstChild.childNodes;
for(var i=0;i<nodes.length;i++)
{
sa.push(nodes[i].attributes.url);
}
playSong();
}

xml.load("songs.xml");

//Play the mp3 file
function playSong():Void
{
if(cps==sa.length-1)
{
cps=0;
s.loadSound(sa[cps],true);
}
else
{
s.loadSound(sa[++cps],true);
}
}

Is er iemand die mij kan helpen zodat ik verder kan in de wondere wereld van actionscripting!

bvd
Stik [}:|]

Jan
%Europe/Berlin %939 %2007, 23:33
Gebruik een Flash versie die AS2 heeft en dan is je probleem opgelost. ;)
Als ik in mijn versie 8 de AS versie naar 1 verlaag krijg ik dezelfde error.
Strikt genomen zitten er geen syntax fouten in dat script.


Groeten,
Jan

Dauntless
%Europe/Berlin %948 %2007, 23:45
AS1 heeft geen datatypes. Verwijder de :Void en hij werkt ook in AS1.

stik
%Europe/Berlin %349 %2007, 09:23
Ik krijg nu geen foutmelding meer, en toch werkt het niet. In de bijlage zit een zip met daarin de bestanden. Als er iemand is die me hier mee op weg kan helpen ben ik zeer dankbaar.

stik [}:|]

Scytale333
%Europe/Berlin %350 %2007, 09:25
Ik krijg nu geen foutmelding meer, en toch werkt het niet. In de bijlage zit een zip met daarin de bestanden. Als er iemand is die me hier mee op weg kan helpen ben ik zeer dankbaar.

stik [}:|]

Wat heb je nu gedaan? Er waren meerdere reacties met oplossingen. Heb je nu een AS2 file aangemaakt?

Algemene vraag: Dat kan toch gewoon in MX 2004?

Jan
%Europe/Berlin %489 %2007, 12:44
Volgens mij mis je een deel van het AS.
Probeer het hier eens mee.Gewoon knippen en plakken naar je eerste frame.
En natuurlijk play, next etc. buttons tekenen op je stage (als mc's en de juiste instance name geven:kijk in het AS). Speelt ook zonder die buttons maar dan heb je dus geen controls.
Opslaan, publishen en in dezelfde folder als je mp3's en xml file steken.
Werkte bij mij maar de buttons moeten nog wat getweaked worden...(edit:maar dus niet met AS1 :S Ik had er nochthans die ":Void's" al uitgehaald.)
// Setup sound object
var s:Sound=new Sound();
s.onSoundComplete=playSong;
s.setVolume(100);

// Array of songs
var sa:Array=new Array();

// Currently playing song
var cps:Number=-1;

// Posistion of music
var pos:Number;

// Load the songs XML
var xml:XML=new XML();
xml.ignoreWhite=true;
xml.onLoad=function()
{
var nodes:Array=this.firstChild.childNodes;
for(var i=0;i<nodes.length;i++)
{
sa.push(nodes[i].attributes.url);
}
playSong();
}

xml.load("songs.xml");

// Play the mp3 file
function playSong()
{
s=new Sound();
if(cps==sa.length-1)
{
cps=0;
s.loadSound(sa[cps],true);
}
else
{
s.loadSound(sa[++cps],true);
}
playPause.gotoAndStop("pause");
}

// Pauses the music
function pauseIt()
{
pos=s.position;
s.stop();
}
// unPauses the music
function unPauseIt()
{
s.start(pos/1000);
}


// Music controls

// Play/Pause toggle
playPause.onRollOver=function()
{
if(this._currentframe==1) this.gotoAndStop("pauseOver");
else this.gotoAndStop("playOver");
}

playPause.onRollOut=playPause.onReleaseOutside=fun ction()
{
if(this._currentframe==10) this.gotoAndStop("pause");
else this.gotoAndStop("play");
}

playPause.onRelease=function()
{
if(this._currentframe==10)
{
this.gotoAndStop("playOver")
this._parent.pauseIt();
}
else
{
this.gotoAndStop("pauseOver");
this._parent.unPauseIt();
}
}

// Next button
nextt.onRollOver=function()
{
this.gotoAndStop("nextOver");
}

nextt.onRollOut=nextt.onReleaseOutside=function()
{
this.gotoAndStop("next");
}

nextt.onRelease=function()
{
this._parent.playSong();
}
Hier gehaald:http://www.flashfocus.nl/forum/showthread.php?t=33182
Een syntaxfout eruitgehaald, de Void:'s verwijderd, en "next"als instancename voor een buttonmc levert problemen op als je dat gebruikt in je AS (denk ik) dus veranderd naar: "nextt". (frames en layers van buttons heb ik verder niet uitgewerkt)

Snel even online gezet:
http://users.telenet.be/jansurf/MP3playertest/mp3test.html
fla:
http://users.telenet.be/jansurf/MP3playertest/mp3testmx.fla (MX)
http://users.telenet.be/jansurf/MP3playertest/mp3test.fla (8pro)


Groeten,
Jan

PS:
Pas deze regel met (func....tion) aan in je actionscript als je het ernaartoe copy paste:
playPause.onRollOut=playPause.onReleaseOutside=fun ction()