PapstRatze
Lt. Junior Grade
- Registriert
- Aug. 2008
- Beiträge
- 436
Tag,
hab ein Problem und 10€ übrig:
Ich steh gerade total auf dem Schlauch (8€). Versuche schon eine weile einen Text von JavaScript an eine Flashdatei zu übergeben.
Von Vorne:
Ich versuche ein Array, welches mit ca. 44100 float-Zahlen gefüllt ist an ein Flash zu übergeben. (Der, der sich schon mal mit Sounds beschäftigt hat weiß bereits worum es geht.) Das wird nötig, da dieser kleine, leider zu unrecht geliebte IE ein Problem mit DataUri's hat. Die Wiedergabe des so erstellten Tons in Flash habe ich mir durch die "richtigen", schwer zu findenden Beispiele zusammen gestellt. Funktioniert auch einwandfrei, wenn ich das Array direkt in Flash fülle.
Um es aber vorwegzunehmen ich habe eigentlich von Flash/ActionScript kaum eine Ahnung. Es würde mich freuen, wenn trotz all meiner Suche nun doch raus kommt, dass man ab Flash 10 bereits Arrays übergeben kann, da aufgrund der Größe ein einfaches umwandeln in einen String auch nicht möglich ist.
Aktuell versuche ich jeden Eintrag einzeln zu Übergeben, ich glaube das ist totaler Humbug aber wie gesagt ich hab keinen Plan von Flash .
So jetzt aber mal ein bisschen Code -Auszug aus dem JQuery-Plugin welches ich erstellt habe-
Das ganze ist schön eingebettet in ein Try-Catch, weshalb ich zumindest weiß, das es ab der dritten Zeile zum Abbruch kommt .
Nun der Flash-Part:
Wie gesagt, die Funktion aus dem Flash wird versucht in einem Plugin aufzurufen, das eigentliche Objekt ist aber bereits in der HTML eingebunden. Wollte es eigentlich auch erst in dem Plugin erstellen, das führte aber zum direkt Absturz von Opera
Vielleicht sehe ich den Wald vor lauter Bäumen nicht mehr (6€), aber ich komm einfach nicht weiter. Ist es ein Fehler in der Flash-Datei oder doch einfach ein Falscher Aufruf in JQuery?
Fragen über Fragen (4€)...
Jetzt habe ich noch 4€ und bestimmt bald einen Tipp wie ich weiter komme
hab ein Problem und 10€ übrig:
Ich steh gerade total auf dem Schlauch (8€). Versuche schon eine weile einen Text von JavaScript an eine Flashdatei zu übergeben.
Von Vorne:
Ich versuche ein Array, welches mit ca. 44100 float-Zahlen gefüllt ist an ein Flash zu übergeben. (Der, der sich schon mal mit Sounds beschäftigt hat weiß bereits worum es geht.) Das wird nötig, da dieser kleine, leider zu unrecht geliebte IE ein Problem mit DataUri's hat. Die Wiedergabe des so erstellten Tons in Flash habe ich mir durch die "richtigen", schwer zu findenden Beispiele zusammen gestellt. Funktioniert auch einwandfrei, wenn ich das Array direkt in Flash fülle.
Um es aber vorwegzunehmen ich habe eigentlich von Flash/ActionScript kaum eine Ahnung. Es würde mich freuen, wenn trotz all meiner Suche nun doch raus kommt, dass man ab Flash 10 bereits Arrays übergeben kann, da aufgrund der Größe ein einfaches umwandeln in einen String auch nicht möglich ist.
Aktuell versuche ich jeden Eintrag einzeln zu Übergeben, ich glaube das ist totaler Humbug aber wie gesagt ich hab keinen Plan von Flash .
So jetzt aber mal ein bisschen Code -Auszug aus dem JQuery-Plugin welches ich erstellt habe-
Code:
var soundArray = (new Function(inputSourceCode)());
for (var i = 0; i < soundArray.length; i++) {
$("#_flash").playFlash(''+soundArray[i]);
}
Nun der Flash-Part:
Code:
public class Main extends Sprite
{
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private var j:uint = 0; private var soundArray:Array; private var sampleRate:uint; private var k:uint = 0;
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
ExternalInterface.addCallback("playFlash", create);
}
public function create(soundVal:String):void
{
if(k < 44100){
soundArray[j] = parseFloat(soundVal);
k++;
}
else {
var mySound:Sound = new Sound();
mySound.addEventListener(SampleDataEvent.SAMPLE_DATA, sineWaveGenerator);
mySound.play();
k = 0;
}
}
private function sineWaveGenerator(event:SampleDataEvent):void
{
if(j < 44100){
for (j; j < 8192; j++)
{
event.data.writeFloat(soundArray[j]);
event.data.writeFloat(soundArray[j]);
}
j += 8192;
}
}
}
Vielleicht sehe ich den Wald vor lauter Bäumen nicht mehr (6€), aber ich komm einfach nicht weiter. Ist es ein Fehler in der Flash-Datei oder doch einfach ein Falscher Aufruf in JQuery?
Fragen über Fragen (4€)...
Jetzt habe ich noch 4€ und bestimmt bald einen Tipp wie ich weiter komme