Alex,
I tested on a PC 2.8 Ghz. That seems pretty weird if the JS engine and the
Flash engine were duplicating each other's functions/objects.
I actually started to explore this as a way to upgrade my knowledge of JS. I
can never remember much about flash after I'm finished using it until the next
project, which has been over a year now. I'm pretty confident in Lingo, and in
the many ways to optimize it, but realistically, cannot ignore flash any
longer. So re-stepping into JS is the easy way to accomplish this for me.
I guess people prefer maintaining a "unified" knowledge base by using a
ready-made JS/flash object rather than writing the quivalent n lines of lingo
(faster but longer, needing storage and maintenance)
Thanks for the "power" tip though, dare I say Power is not what it pretends ...
:)
T.
---- Alex da Franca <[EMAIL PROTECTED]> wrote:
>
> Am 08.05.2006 um 19:58 schrieb [EMAIL PROTECTED]:
>
> >
> > Hi,
> >
> > As mentioned on Direct-L, you can create a Math object from a JS
> > script, (not using flash asset??).
> >
> > with math=getMath()
> >
> > and a JS script:
> > function getMath()
> > {
> > return Math;
> > }
> >
> >
> > It takes about 1780 ms for the script to run, against 2580 for
> > Valentin's original script.
> >
> > Alex, your method is still faster with 1240 ms.
>
> out of interest, did you test on mac or PC ?
>
> >
> > Now my question is: Where does the Math() object come from in the
> > JS version?
>
> As far as I understand, it is a complete ECMA framework called
> SpiderMonkey Engine.
> So the Math object is certainly a class of this framework.
>
> what is in the math object from flash or spider monkey, what you
> can't do in lingo ?
> I have a bunch of parent scripts written in lingo which may be pretty
> similar, but are in most cases significantly faster.
> so why are people so thrilled about using the flash or the ECMA math
> object rather than a lingo math object ?
>
> as for performance, there is another little optimization, which can
> be done for Valentins handler:
> replace the power() function, as for an unknown reason the power()
> function is known to be somewhat slow.
>
>
> here's what gave me the best results:
>
>
> -- Parentscript "spherizeFilter"
> -- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>
> on new me
> return me
> end
>
> -- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>
> -- optional parameters tPercent, tCenter, tRadius
> -- defaults: tPercent=100%, tCenter=center of image
> on spherize me, tImage, tPercent, tCenter, tRadius
>
> ms = the milliseconds
> w = tImage.width
> h = tImage.height
>
> if voidP(tPercent) then tPercent=100.0
> if voidP(tCenter) then tCenter = point(w/2, h/2)
> if voidP(tRadius) then tRadius = min(w/2, h/2)
>
> newImage = tImage.duplicate()
> centerX = tCenter[1]
> centerY = tCenter[2]
> rr = tRadius / sqrt(1- power(1-tPercent/100.0, 2) )
>
> f = asin(me, tRadius/rr) -- 100%: pi/2
>
> repeat with y = 0 to h-1
> repeat with x = 0 to w-1
> deltaX = x - centerX
> deltaY = y - centerY
> d0 = sqrt((deltaX*deltaX) + (deltaY*deltaY))
> if d0<tRadius then
> if d0>0 then
> d1 = tRadius * asin(me, d0/rr)
> k = d1/d0/f
> xNew = centerX + (deltaX * k)
> yNew = centerY + (deltaY * k)
> newImage.setPixel(x, y, tImage.getPixel(xNew, yNew,
> #integer))
> end if
> end if
> end repeat
> end repeat
>
> tImage.copyPixels(newImage, newImage.rect, newImage.rect)
> put the milliseconds - ms
> end
>
> -- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>
> on asin me, ratio
> if ratio < 1 and ratio > -1 then
> RETURN atan(ratio/sqrt(1.0 - (ratio * ratio)))
> else if ratio = 1 then
> RETURN pi()/2
> else if ratio = -1 then
> RETURN -pi()/2
> end if
> end
>
>
>
> ---------------------------
>
> |||
> a¿ex
>
>
>
> [To remove yourself from this list, or to change to digest mode, go to
> http://www.penworks.com/lingo-l.cgi To post messages to the list, email
> [email protected] (Problems, email [EMAIL PROTECTED]). Lingo-L is for
> learning and helping with programming Lingo. Thanks!]
[To remove yourself from this list, or to change to digest mode, go to
http://www.penworks.com/lingo-l.cgi To post messages to the list, email
[email protected] (Problems, email [EMAIL PROTECTED]). Lingo-L is for
learning and helping with programming Lingo. Thanks!]