Hallo,
ich möcht eine interaktives "Spiel" in Flash umsetzen. Ziel soll sein mit Hilfe des Mikrofons Wolken auf der Bühne wegzupusten. Beim Mikrofon soll nur der Eingangspegel gemessen werden. Der dann angibt wie schnell die Wolken beiseite fliegen.
Im Prinzip funktioniert die Anwendung soweit auch allerdings mit einem kleinen Problem. Meine Wolken fliegen nur in eine Richtung und verteilen sich nicht gleichmäßig auf der Bühne. Wenn ich den Quellcode mit dem Mikrofoninteraktion auskommentiere verteilen sich die Wolken wie gewollt.
Kann mir da jmd. helfen?
Die fla-Datei und swf könnt ihr runterladen.
ich möcht eine interaktives "Spiel" in Flash umsetzen. Ziel soll sein mit Hilfe des Mikrofons Wolken auf der Bühne wegzupusten. Beim Mikrofon soll nur der Eingangspegel gemessen werden. Der dann angibt wie schnell die Wolken beiseite fliegen.
Im Prinzip funktioniert die Anwendung soweit auch allerdings mit einem kleinen Problem. Meine Wolken fliegen nur in eine Richtung und verteilen sich nicht gleichmäßig auf der Bühne. Wenn ich den Quellcode mit dem Mikrofoninteraktion auskommentiere verteilen sich die Wolken wie gewollt.
Kann mir da jmd. helfen?
Code:
var CloudArray:Array = new Array();
var maxClouds:Number = 100;
var micro: Microphone = Microphone.getMicrophone();
micro.gain = 50;
micro.setUseEchoSuppression(true);
micro.setLoopBack(true);
micro.setSilenceLevel(40);
function addCloud(e:Event)
{
var cloud_mc:Cloud = new Cloud();
cloud_mc.x = stage.stageWidth/2;
cloud_mc.y = stage.stageHeight/2;
cloud_mc.alpha = Math.random() * .8 + .2;
cloud_mc.scaleX = cloud_mc.scaleY = Math.random() * .8 + .2;
cloud_mc.xMovement = Math.random() * 4 - 2;
cloud_mc.yMovement = Math.random() * 4 - 2;
CloudArray.push(cloud_mc);
addChild(cloud_mc);
cloud_mc.cacheAsBitmap = true;
if (CloudArray.length >= maxClouds)
{
removeChild(CloudArray.shift());
}
cloud_mc.addEventListener(Event.ENTER_FRAME,moveCloud);
}
function moveCloud(e:Event)
{
e.currentTarget.x += e.currentTarget.xMovement = micro.activityLevel;
e.currentTarget.y += e.currentTarget.yMovement = micro.activityLevel;
}
var myTimer:Timer = new Timer(50);
myTimer.addEventListener(TimerEvent.TIMER, addCloud);
myTimer.start();