Volledige versie bekijken : As 3.0 !
clublime
%Europe/Berlin %557 %2006, 14:22
Waarom is er nog geen sticky As 3.0 topic?
Hier is de topic en het is aan de moderators om 'm sticky te maken. :)
aan de slag met As 3.0
middels de nieuwe Flash 9 IDE, hier verkijgbaar in alpha:
http://labs.adobe.com/technologies/flash9as3preview/
deze IDE bevat nog geen helpfiles, maar gelukkig heeft
Adobe een Flex 2 language reference alhier:
http://livedocs.macromedia.com/flex/2/langref/
uiteraard ook nog even je browser player updaten naar FP9
(al twijfel ik er niet aan dat iedereen hier al up-to-date is)
http://www.adobe.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash&Lang=Dutch
Hier alvast een paar van mijn dingetjes.
Zie graag jullie experimenten in deze thread!
http://www.clublime.com/test/flash9/patterns.html
http://www.clublime.com/test/flash9/patterns2.html
SaphuA
%Europe/Berlin %658 %2006, 16:47
Clublime, goed initiatief! Denk echter dat er helaas op dit forum te weinig animo voor is. We zullen zien.
Dan zal ik mijn experiment hier ook nogmaals posten ;)
Een tijd terug had ik in Flash 8 een 3D Grid gemaakt, waar je doorheen kon 'wandelen'. Deze was echter erg traag, dus ik besloot te staken met het project. Nu ik hoorde dat Flash 9 een stuk sneller moest zijn; heb ik hem opnieuw gemaakt in AS3. Het resultaat mag er wezen, en is hier te zien.
http://www.flashfocus.nl/forum/showthread.php?t=18497
matzo
%Europe/Berlin %946 %2006, 23:42
Lijkt me inderdaad een leuk initiatief. En voor wie niet graag de 9 alpha versie wil installeren, geen uitvlucht(ik zou ook niet begrijpen waarom niet)! Neem gewoon de SDK dan.
clublime
%Europe/Berlin %329 %2006, 08:54
Hoe kan DAAR nou te weinig animo voor zijn denk ik dan ;)
AS3 is snel. AS3 is master. AS3 is aan.
matzo
%Europe/Berlin %507 %2006, 13:11
50 Tips and tricks met Actionscript 3!
>>http://www.kirupa.com/forum/showthread.php?p=1923917#post1923917
(senocular gaat er (zo staat op zijn blog te lezen) zo'n 100 geven)
1ste is direct al een heel leuke. Dynamische Framerates. (was al mogelijk, maar dan moest je een hack toepassen via een sound in te laden;))
Nu gewoon stage.frameRate=12;//nee stage ipv Stage is blijkbaar geen typo van senocular, tot mijn verbazing
//edit aan saphua
Ik ben al een tijdje bezig hoor. Niet dat ik er iets van kan, maar dat zal OOIT nog wel komen.:D
SaphuA
%Europe/Berlin %508 %2006, 13:12
En niemand reageert op je post ;)
Geen idee, nieuwe techonologiën dringen vaak niet zo snel door hier (met alle respect hoor :)).
eagle
%Europe/Berlin %526 %2006, 13:37
Hoe kan DAAR nou te weinig animo voor zijn denk ik dan ;)
AS3 is snel. AS3 is master. AS3 is aan.
Inderdaad, helaas is de support nog maar minimaal.
clublime
%Europe/Berlin %476 %2006, 12:25
Mijn volgende experimentje :)
http://www.clublime.com/test/flash9/humColor.html
Dauntless
%Europe/Berlin %565 %2006, 14:34
Vet clublime!!! Hoe heb je die juist gemaakt ? :#
(En met welk prog? F9 beta ?)
clublime
%Europe/Berlin %917 %2006, 23:01
Yeh, F9 beta
Source: http://www.clublime.com/test/flash9/HumColor.zip
FredHeusschen
%Europe/Berlin %427 %2006, 11:16
daar gaat mn vrije tijd...
SaphuA
%Europe/Berlin %982 %2006, 00:34
Ik wilde even kwijt dat ik mijn 3D engine enorm heb aangepast. Omdat deze in F9 is gemaakt, en naar mijn mening goed laat zien wat de kracht van F9 is, post ik hem hier nog eens voor de liefhebber.
http://www.flashfocus.nl/forum/showthread.php?t=18497
BernardV
%Europe/Berlin %000 %2006, 01:00
Vanavond ook maar even met AS3 wat geprobeerd.
Na wat door de references te bladeren viel mijn oog op de SoundMixer class en de daarbij behorende functie computeSpectrum...
Na wat testen is dit het resultaat: http://www.kliederbord.nl/spectrum/
Misschien eens kijken of ik de hum van hierboven erin kan verwerken :)
Zal de code binnenkort even posten, eerst even alle traces etc ordenen/verwijderen en wat commentaar toevoegen.
//Het laden kan even duren.. dus heb geduld ;)
Tha Narie
%Europe/Berlin %021 %2006, 01:31
Haha, leuk gedaan!
Ook heerlijk nummer ;)
Heb je maar 1 kanaal gepakt, of het nummer mono (lijkt me sterk)?
Het geeft een byteArray van 512 indexes terug, waarvan 256 van het linker kanaal, en 256 van het rechter.
Volgens mij zie ik er bij jou maar 1tje? :)
BernardV
%Europe/Berlin %027 %2006, 01:39
Je ziet er maar 1 inderdaad, dat is het gemiddelde van L+R
Ook wordt de voorlaatste waarde meegenomen in het weergeven, anders is het zo'n verspringend beeld.. nu loopt het wat "smoother" :)
BTW.. de array heeft een lengte van 2048, maar je trekt de waardes er goed uit met readFloat(); Dan hou je er uiteindelijk 512 over :)
BernardV
%Europe/Berlin %938 %2006, 23:31
Ik had beloofd de code te posten....
Heb nog niet echt tijd gehad alles van commentaar te voorzien en wat te ordenen, dus hierbij mijn "test" code:
Op en/of aanmerkingen worden ZEER gewaardeerd!
package
{
import flash.display.Sprite;
import flash.utils.ByteArray;
import flash.utils.setInterval;
import flash.media.SoundMixer;
public class SpectrumVisual extends Sprite
{
private var __maxValue:Number = 100;
private var __minValue:Number = 0;
private var __valueAr:Array;
private var __intervalTime:Number = 20;
private var __intervalId:uint;
private var __spectrumAr:ByteArray;
private var __maxCount:Number = 256;
private var __barCount:Number = 256;
private var __barWidth:Number = 1;
private var __freqSpectrum:Boolean = true;
private var __smooth:Boolean = true;
private var __drawBar:Boolean = false;
private var __drawLine:Boolean = false;
private var __barColor:Number = 0x000000;
private var __lineColor:Number = 0x000000;
public function SpectrumVisual()
{
startVisual();
}
public function drawBar(b:Boolean,c:Number):void
{
__drawBar = b;
__barColor = c;
}
public function drawLine(b:Boolean,c:Number):void
{
__drawLine = b;
__lineColor = c;
}
public function drawSmooth(b:Boolean):void
{
__smooth = b;
}
public function drawFrequencySpectrum(b:Boolean):void
{
__freqSpectrum = b;
}
public function setBarWidth(n:Number):void
{
__barWidth = n;
}
/**
* Returns false when 256 % n != 0
*/
public function setBarCount(n:Number):Boolean
{
if(__maxCount%n==0 && n <= __maxCount){
__barCount = n;
return true;
}
return false;
}
public function setMaxValue(n:Number):void
{
__maxValue = n;
}
private function startVisual():void
{
__valueAr = new Array();
for(var i:Number = 0 ; i < __maxCount ; i++)
{
__valueAr[i] = new Object();
__valueAr[i].value = 0;
__valueAr[i].lastValue = 0;
}
__spectrumAr = new ByteArray();
__intervalId = setInterval(draw,__intervalTime);
}
private function draw():void
{
updateValues();
graphics.clear();
if(__drawBar) drawBarSpectrum();
if(__drawLine) drawLineSpectrum();
}
private function drawBarSpectrum():void
{
graphics.beginFill(__barColor);
var valueCounter:Number = Math.round(__maxCount/__barCount);
for(var i:Number = 0 ; i < __maxCount ; i+=valueCounter)
{
var drawValue:Number = 0;
for(var j:Number = i ; j < i+valueCounter ; j++)
{
drawValue += __valueAr[j].value;
}
drawValue /= valueCounter;
drawValue = __freqSpectrum?-drawValue:drawValue;
graphics.drawRect((i/valueCounter)*(__barWidth+1),0,__barWidth,drawValu e * __maxValue);
}
graphics.endFill();
}
private function drawLineSpectrum():void
{
graphics.lineStyle(1,__lineColor);
var valueCounter:Number = Math.round(__maxCount/__barCount);
for(var i:Number = 0 ; i < __maxCount ; i+=valueCounter)
{
var drawValue:Number = 0;
for(var j:Number = i ; j < i+valueCounter ; j++)
{
drawValue += __valueAr[j].value;
}
drawValue /= valueCounter;
drawValue = __freqSpectrum?-drawValue:drawValue;
if(i==0) graphics.moveTo(0,drawValue*__maxValue);
else graphics.lineTo((i/valueCounter)*(__barWidth+1),drawValue * __maxValue);
}
}
private function updateValues():void
{
SoundMixer.computeSpectrum(__spectrumAr,__freqSpec trum,0);
for(var i:Number = 0 ; i < 512 ; i++)
{
var curValue:Number = __spectrumAr.readFloat();
if(i>255){
if(__smooth){
__valueAr[i%256].value = (__valueAr[i%256].lastValue + (__valueAr[i%256].tempValue + curValue ) / 2) / 2 ;
__valueAr[i%256].lastValue = __valueAr[i%256].value;
} else {
__valueAr[i%256].value = (__valueAr[i%256].tempValue + curValue ) / 2;
}
} else {
__valueAr[i%256].tempValue = curValue;
}
}
}
}
}
gebruik het bv zo:
var sVisual:SpectrumVisual = new SpectrumVisual();
sVisual.drawBar(true,0x00FF00);
addChild(sVisual);
Hij neemt extern geladen MP3's of intern geluid mee in het spectrum...
BernardV
%Europe/Berlin %035 %2006, 01:50
Kom op mensen.. geen commentaar....?!?!?
VVP
%Europe/Berlin %038 %2006, 01:55
Ik had beloofd de code te posten....
Heb nog niet echt tijd gehad alles van commentaar te voorzien en wat te ordenen, dus hierbij mijn "test" code:
Op en/of aanmerkingen worden ZEER gewaardeerd!
package
{
import flash.display.Sprite;
import flash.utils.ByteArray;
import flash.utils.setInterval;
import flash.media.SoundMixer;
public class SpectrumVisual extends Sprite
{
private var __maxValue:Number = 100;
private var __minValue:Number = 0;
private var __valueAr:Array;
private var __intervalTime:Number = 20;
private var __intervalId:uint;
private var __spectrumAr:ByteArray;
private var __maxCount:Number = 256;
private var __barCount:Number = 256;
private var __barWidth:Number = 1;
private var __freqSpectrum:Boolean = true;
private var __smooth:Boolean = true;
private var __drawBar:Boolean = false;
private var __drawLine:Boolean = false;
private var __barColor:Number = 0x000000;
private var __lineColor:Number = 0x000000;
public function SpectrumVisual()
{
startVisual();
}
public function drawBar(b:Boolean,c:Number):void
{
__drawBar = b;
__barColor = c;
}
public function drawLine(b:Boolean,c:Number):void
{
__drawLine = b;
__lineColor = c;
}
public function drawSmooth(b:Boolean):void
{
__smooth = b;
}
public function drawFrequencySpectrum(b:Boolean):void
{
__freqSpectrum = b;
}
public function setBarWidth(n:Number):void
{
__barWidth = n;
}
/**
* Returns false when 256 % n != 0
*/
public function setBarCount(n:Number):Boolean
{
if(__maxCount%n==0 && n <= __maxCount){
__barCount = n;
return true;
}
return false;
}
public function setMaxValue(n:Number):void
{
__maxValue = n;
}
private function startVisual():void
{
__valueAr = new Array();
for(var i:Number = 0 ; i < __maxCount ; i++)
{
__valueAr[i] = new Object();
__valueAr[i].value = 0;
__valueAr[i].lastValue = 0;
}
__spectrumAr = new ByteArray();
__intervalId = setInterval(draw,__intervalTime);
}
private function draw():void
{
updateValues();
graphics.clear();
if(__drawBar) drawBarSpectrum();
if(__drawLine) drawLineSpectrum();
}
private function drawBarSpectrum():void
{
graphics.beginFill(__barColor);
var valueCounter:Number = Math.round(__maxCount/__barCount);
for(var i:Number = 0 ; i < __maxCount ; i+=valueCounter)
{
var drawValue:Number = 0;
for(var j:Number = i ; j < i+valueCounter ; j++)
{
drawValue += __valueAr[j].value;
}
drawValue /= valueCounter;
drawValue = __freqSpectrum?-drawValue:drawValue;
graphics.drawRect((i/valueCounter)*(__barWidth+1),0,__barWidth,drawValu e * __maxValue);
}
graphics.endFill();
}
private function drawLineSpectrum():void
{
graphics.lineStyle(1,__lineColor);
var valueCounter:Number = Math.round(__maxCount/__barCount);
for(var i:Number = 0 ; i < __maxCount ; i+=valueCounter)
{
var drawValue:Number = 0;
for(var j:Number = i ; j < i+valueCounter ; j++)
{
drawValue += __valueAr[j].value;
}
drawValue /= valueCounter;
drawValue = __freqSpectrum?-drawValue:drawValue;
if(i==0) graphics.moveTo(0,drawValue*__maxValue);
else graphics.lineTo((i/valueCounter)*(__barWidth+1),drawValue * __maxValue);
}
}
private function updateValues():void
{
SoundMixer.computeSpectrum(__spectrumAr,__freqSpec trum,0);
for(var i:Number = 0 ; i < 512 ; i++)
{
var curValue:Number = __spectrumAr.readFloat();
if(i>255){
if(__smooth){
__valueAr[i%256].value = (__valueAr[i%256].lastValue + (__valueAr[i%256].tempValue + curValue ) / 2) / 2 ;
__valueAr[i%256].lastValue = __valueAr[i%256].value;
} else {
__valueAr[i%256].value = (__valueAr[i%256].tempValue + curValue ) / 2;
}
} else {
__valueAr[i%256].tempValue = curValue;
}
}
}
}
}
gebruik het bv zo:
var sVisual:SpectrumVisual = new SpectrumVisual();
sVisual.drawBar(true,0x00FF00);
addChild(sVisual);
Hij neemt extern geladen MP3's of intern geluid mee in het spectrum...
cool :D..
maar mag ik nou vragen wat precies het verschil is met AS 2.0 en AS 3.0?
en wat het nut is om eigelijk om de zoveel tijd de dingen te veranderen ;) ik bedoel dingen toevoegen okeej :P maar straks ken ik AS 2.0 eindelijk en dan is 4.0 er al weer dan kan ik weer opnieuw beginnen met leren?!
of zie ik dit allemaal verkeerd?
Wouter H
%Europe/Berlin %716 %2006, 18:11
Afgelopen weekend mijn eerste AS 3.0 expriment gedaan. Ben echt geinteresseerd geraakt toen ik las dat het mogelijk is realtime audio te genereren. Zelf synthesizers maken die online werken! Ik heb de PCM audio classes gebruikt die op http://www.flashcodersbrighton.org/wordpress/?p=9 te vinden zijn om een swf te maken die twee simpele patronen speelt, een sinus golf en een driehoek golf waarvan het patroon terwijl het speelt te veranderen is:
http://www.hisschemoller.com/music003.html
Het klinkt als het geluid van Pong of een ander oud videospel, maar het gaat om het principe: Geen mp3's afspelen maar ter plekke gegenereerde audio en voor het eerst in Flash voldoende strakke timing. En trouwens ook audio op de computer en hardware synthesizers zijn ooit begonnen met alleen maar simpele geluiden.
@BernardV: Ziet er goed uit, die spectrum data. Vooral dat beeld en audio mooi gelijk lopen. Ik heb geprobeerd visuele feedback in mijn experiment op te nemen, maar er bleek een te grote vertraging te zitten tussen beeld en geluid. Waarschijnlijk door de grootte van de audiobuffer in Flash en de latency van de geluidskaart. Ik ga volgende week proberen of het mogelijk is die computeSpectrum functie te gebruiken om beeld en geluid beter op elkaar af te stemmen.
Wouter
clublime
%Europe/Berlin %495 %2006, 12:53
cool BernardV :)
Ik ben bezig met een site voor een band.
Dit wordt daar een visueel onderdeel van.
http://www.clublime.com/test/flash9/flock.html
josko
%Europe/Berlin %497 %2006, 12:56
Dat is zeer cool gemaakt :)
BernardV
%Europe/Berlin %757 %2006, 19:10
@BernardV: Ziet er goed uit, die spectrum data. Vooral dat beeld en audio mooi gelijk lopen. Ik heb geprobeerd visuele feedback in mijn experiment op te nemen, maar er bleek een te grote vertraging te zitten tussen beeld en geluid. Waarschijnlijk door de grootte van de audiobuffer in Flash en de latency van de geluidskaart. Ik ga volgende week proberen of het mogelijk is die computeSpectrum functie te gebruiken om beeld en geluid beter op elkaar af te stemmen.
Ik bedacht me net.. de computeSpectrum functie heeft als laatste waarde een "stretch"
0 is 44khz sampling
1 is 22khz sampling
2 is 11khz samping
Dus als je bv audio genereerd op 11khz zul je de compute spectrum met de laatste waarde 2 ipv 0 moeten aanroepen.
BernardV
%Europe/Berlin %236 %2006, 05:40
Kwam een een uurtje a anderhalf geleden thuis en had nog geen zin het bed in te gaan..
Heb nog even wat gespeeld met de spectrum class van hierboven en wat filters.
Dit is het nu.. morgen nog maar even wat verbeteren ;)
http://www.kliederbord.nl/spectrum2/
//EDIT: Voor iedereen die IE heeft met FP9 draai hem daarop. Dat draait een stuk beter ;)
Dauntless
%Europe/Berlin %529 %2006, 12:42
Topic even verplaatst naar AS 3.0 forum! :)
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.