Thank you Henry. It didn't work. I'm still getting the security error :(
I'm trying to play a streaming resource ... but it has nothing to do with mi problem ... right? On Sun, Mar 21, 2010 at 10:16 AM, Henry Minsky <[email protected]> wrote: > I am trying to recall if anything in the Laszlo runtime library loads sound > from an external source when the > LFC is initialized, but I don't think > so. > > > > On Sun, Mar 21, 2010 at 9:08 AM, Lucas Lain <[email protected]> wrote: >> >> I can see the red line now! :) >> The security error shows up when computeSpectrum is called. >> I found this: >> >> "the Error #2121 happens when you try to call the computeSpectrum >> function when another flash file with sound is loaded from a different >> domain. >> For example, if you have youtube open when trying to view a flash file >> that uses computeSpectrum, it will fail because youtube did not grant >> your domain access to get its sound info.... >> It appears the only "solution" is to put your computeSpectrum in a >> try/catch block (or use areSoundsInaccessable method before calling >> computeSpectrum ) and simply notify the user that a flash file in a >> different window is interfering with your sound visualizations!" >> >> But I'm not using flash in any window :( >> >> >> On Sun, Mar 21, 2010 at 9:46 AM, Henry Minsky <[email protected]> >> wrote: >> > I tried to compile and run your example, as follows, and it ran without >> > error for me. It displayed a red line >> > >> > <canvas> >> > <class name="spectrum" extends="view"> >> > <passthrough> >> > import flash.display.Sprite; >> > import flash.display.StageAlign; >> > import flash.display.StageScaleMode; >> > import flash.events.*; >> > import flash.media.Sound; >> > import flash.media.SoundChannel; >> > import flash.media.SoundMixer; >> > import flash.media.SoundTransform; >> > import flash.net.URLRequest; >> > import flash.utils.Timer; >> > import flash.geom.Matrix; >> > import flash.utils.ByteArray; >> > import flash.text.TextField; >> > import flash.text.TextFieldAutoSize; >> > import flash.text.TextFormat; >> > </passthrough> >> > >> > <attribute name="_ba" value="null"/> >> > <attribute name="_gr" value="null"/> >> > <method name="init"><![CDATA[ >> > this._ba = new ByteArray(); >> > this._gr = new Sprite(); >> > this._gr.x = 20; >> > this._gr.y = 200; >> > >> > canvas.sprite.addChild(this._gr); >> > >> > var time:Timer = new Timer(50); >> > >> > time.addEventListener(TimerEvent.TIMER, timerHandler); >> > time.start(); >> > ]]> >> > </method> >> > >> > <method name="timerHandler" args="e:Event"><![CDATA[ >> > >> > var ba:ByteArray = this._ba; >> > var gr:Sprite = this._gr; >> > >> > SoundMixer.computeSpectrum(ba, true); >> > var i:int; >> > gr.graphics.clear(); >> > gr.graphics.lineStyle(0, 0xFF0000); >> > gr.graphics.beginFill(0xFF0000); >> > gr.graphics.moveTo(0, 0); >> > var w:int = 2; >> > for (i=0; i<512; i+=w) { >> > var t:Number = ba.readFloat(); >> > var n:Number = (t * 100); >> > gr.graphics.drawRect(i, 0, w, -n); >> > } >> > ]]> >> > </method> >> > </class> >> > <spectrum/> >> > >> > </canvas> >> > >> > Do you have the Flash player installed? >> > Try running either in backtrace mode or without debugging enabled, and >> > see >> > if you can >> > get more information about where the errors is coming from. In backtrace >> > mode, you can click on the error to inspect it. In non-debug mode, the >> > Flash >> > debug player will give you a native Flash backtrace. >> > >> > >> > On Sun, Mar 21, 2010 at 8:38 AM, Lucas Lain <[email protected]> >> > wrote: >> >> >> >> Hello Henry, >> >> >> >> Thank you for your answer. I modified the code and I can compile now. >> >> >> >> But I can't see the sprite, and I'm getting a runtime error: >> >> >> >> ERROR @spectrum.lzx≈46: SecurityError: Error #2123 >> >> >> >> Any Ideas? Could you use this class? >> >> >> >> Best! >> >> >> >> L. >> >> >> >> >> >> On Sun, Mar 21, 2010 at 1:47 AM, Henry Minsky <[email protected]> >> >> wrote: >> >> > Also you will need an extra arg to your handler method >> >> > >> >> > <method name="timerHandler" args="e:Event"> >> >> > >> >> > Because the contract for a AS3 event listener is that it needs to >> >> > accept >> >> > one >> >> > argument. >> >> > >> >> > "This function must accept an Event object as its only parameter and >> >> > must >> >> > return nothing" >> >> > >> >> > >> >> > >> >> > >> >> > On Sat, Mar 20, 2010 at 11:39 PM, Henry Minsky >> >> > <[email protected]> >> >> > wrote: >> >> >> >> >> >> To get the sprite, just "canvas.sprite" ought to work, although the >> >> >> cross >> >> >> platform API to get the sprite is canvas.getDisplayObject() >> >> >> >> >> >> >> >> >> >> >> >> On Sat, Mar 20, 2010 at 5:21 PM, Lucas Lain <[email protected]> >> >> >> wrote: >> >> >>> >> >> >>> Hello everybody, >> >> >>> >> >> >>> does anyone know how to add a sprite to an openlaszlo canvas or >> >> >>> view? >> >> >>> >> >> >>> I wrote/modified the attached class to visualize the sound >> >> >>> spectrum. >> >> >>> >> >> >>> This line is the one supposed to do the trick: >> >> >>> >> >> >>> canvas.content.sprite.addChild(this._gr); >> >> >>> >> >> >>> >> >> >>> Best! >> >> >>> >> >> >>> >> >> >>> -- >> >> >>> Lucas >> >> >> >> >> >> >> >> >> >> >> >> -- >> >> >> Henry Minsky >> >> >> Software Architect >> >> >> [email protected] >> >> >> >> >> >> >> >> > >> >> > >> >> > >> >> > -- >> >> > Henry Minsky >> >> > Software Architect >> >> > [email protected] >> >> > >> >> > >> >> > >> >> >> >> >> >> >> >> -- >> >> Lucas >> > >> > >> > >> > -- >> > Henry Minsky >> > Software Architect >> > [email protected] >> > >> > >> > >> >> >> >> -- >> Lucas > > > > -- > Henry Minsky > Software Architect > [email protected] > > > -- Lucas
