PDA

Volledige versie bekijken : Een heldere blik op mijn code


rover87
%Europe/Berlin %043 %2010, 02:03
Dag allemaal, na veel werken is mijn applicatie bijna af. Helaas heb ik een probleem met mijn code. De applicatie heb ik even geupload naar www.annova.eu/weermachine.zip. De bedoeling van de applicatie is om weer te maken.

Ik analyseer het geluid door computespectrum en hang daar animaties aan. Alleen de animaties lopen nog niet goed lekker met het nummer. Dus ik denk dat mijn code niet goed is.

Een ander probleem kan ook zijn dat het te veel rekenwerk is voor de computer maar dat lijkt mij sterk.

Ik hoop dat er iemand even een blik kan kijken naar mijn code. Het is mijn eerste flashapplicatie ooit dus waarschijnlijk zal de code best rommelig zijn. Excuses hiervoor.

p.s. de applicatie werkt wel, geeft geen fouten maar is niet precies genoeg in mijn ogen.

Hopelijk kan iemand mij hier mee helpen.

Rogier

sidar
%Europe/Berlin %209 %2010, 06:01
Ik denk niet dat iemand de tijd zal nemen =P.
Ik zelf heb geen Flash, dus kan je fla niet openen.

rover87
%Europe/Berlin %349 %2010, 09:23
Ja dat had ik ondertussen al begrepen. Heb zelf nog veel gepuzzeld maar tot nu toe geen succes gehad. Gewoon doorgaan denk ik :)

De code valt wel mee, het gaat om de volgende code:
var weatherTypes:Array = [mc_sunDrag,mc_cloudDrag,mc_fogDrag,mc_rainDrag,mc_ snowDrag,mc_hailDrag,mc_lightningDrag,mc_tornadoDr ag];

var nums:Array = [0,0,0,0,0,0,0,0];
var bar:int = 0;
var groupMax:Number = 256 / 8;
var groupCurrent:int = 0;
var ba:ByteArray = new ByteArray();
var s:Sound = new Sound(new URLRequest("audio/testmusic.mp3"));

s.play(0, 1000);

addEventListener(Event.ENTER_FRAME, loop);

function loop(e:Event):void
{
SoundMixer.computeSpectrum(ba, true);

for (i=0; i < 256; i++)
{
if (groupCurrent < groupMax)
{
nums[bar] += ba.readFloat();
groupCurrent++;
}
else if (bar == 7)
{
groupCurrent = 0;
bar = 0;
nums = [0,0,0,0,0,0,0,0];
}
else
{
groupCurrent = 0;
bar++;
}
}

for (var j:int = 0; j < nums.length; j++)
{
if ((nums[j] / groupMax) > 0.01)
{
for (var a = 0; a< weatherTypes.length; a++)
{
if (weatherTypes[a].hitTestObject(getChildByName("mc_bar" + bar)))
{
trace(weatherTypes[a].name);
//weatherTypes[a].gotoAndPlay(2);
}

}


}
}
}


Ik heb nu een trace gebruikt maar de movieclip kan ook gestart worden. Weet iemand waarom de animaties niet mooi lopen met de muziek? De animatie start maar het lijkt gewoon te loopen. Volgens mij werkt de gotoAndPlay niet als de animatie al gestart is. Dus onder de animatie moet de gotoAndPlay werken.

Hopelijk weet iemand wat er aan de hand is.

Bedankt!

Rogier