Flash wish

as discussed before, since flash 9 (as3 projects) timelined animation and the communication with vvvv doesn’t work anymore.

every app using the active-x extension plays the animation fine except vvvv. i suspect the play controls of the node to be the problem.

it would be nice to have the flash renderer without any playcontrol (play,seek,loop etc.) but with setVariable, getVariable.

any chance or is a better flash integration on some list ?

ok, here is a demo of the bug and a dirty workaround.

as3_timeline_bug.zip (12.7 kB)

better version of the bug demo attached.

i would tackle the problem myself and make a new flash plugin in c#. i just couldn’t find any resources on how to convert flash to bitmap (c#). just a few commerical libs doing just this.

and why do we all need flash 9 in vvvv? because it makes 2D interface design a lot easier but more important: it plays mp4 videos with multicore support accross multiple graphicscards.

but to really use flash with the new features, a swf should play normally and we need a new communication between swf and v4. it’s all rubbish using these hacks and tricks.

amen ;)

as3_timeline_bug2.zip (12.7 kB)

i’ve been pondering the same issue for a while now and i came to the conclusion, that sharedmem (“localconnection” in as2 and as3) is the way to go to communicate with flash. it’s clean, its compatible, its fast. and it’s got no tcp-overhead and since it is amf it is binary.
also flash movies can run in the browser, standalone or in the renderer(flash) and still communicate back and forth.

however, there is no way to “capture” the flash render output and work on it within vvvv besides the screenshot node. but imo thats not necessary once you can performantly send event data back and forth.

ummmm… this just made me remember. When I use to do some visuals stuff with the 3d engine TV3D, lots of people on the forum, including me, were trying to get Flash out as a texture. There were a few methods played around with but the framerate was always a problem when using the same method as vvvv does (i think), wrapping the activeX component flash.ocx. There was a guy on the forum who worked out a different method and claimed the framerate was great, everything inside the swf was fully functional in a 3d space, and synchronous and asynchronous communication with flash was possible. I never tested it out because I started using vvvv for my projects and was able to do everything I needed to. Now flash performance and communication inside of vvvv is becoming an issue for me too.

…anyway… I’ve tracked his project down (seems it all got removed from the TV3D forums). Check out his website.

It seems to me his software could be used to communicate with flash and as a means to get the texture out of it. I imagine we would have to use the shared memory node to get it because we can’t get a texture output from our own node plugins yet.

Any ideas anyone on how to take this further? I may have a chance to look at it in a few weeks but I’m crazy busy at the moment.

update: I’ve been chatting with the guy who’s made this project and he says the next version will make it easy to put the flash output as a RGBA texture(hdc) in memory. Also, full communication with flash using the ExternalInterface class in
actionscript and FSCommand() will be supported.

He’s letting me know when this is available, I’ll keep you’ll updated.

am i right in understanding that this basically allows you to “plug in” a rendering engine into a flash movie?

so in theory we could have a node, which outputs all individual drawing elements on the stage of a flash movie which could then in turn be rendered a clever bunch of textured meshes in vvvv? or obviously being rendered differently by any combination of vvvv nodes? sounds quite nice for all kind of weird remixes of flash movies.

getting a rgba texture in memory sounds would also be a big step (note the A!).

while looking for a solution i came across this

http://www.f-in-box.com/dotnet/

i compiled some of the examples and it seems to work…turning flash into a texture. shame it cost money

Oschatz, I don’t think it means you can “plug in” a rendering engine into a flash movie. More “plug in” a flash movie into vvvv without the performance issues associated with using the Renderer (Flash) > GDITexture. Also, once in this texture we lose mouse and keyboard interaction with the flash movie. With FantastiqUI you still get interaction, however this may not be the case when made to work with vvvv, who knows at this point.

Also, apparently any texture can be specified so texture into memory won’t be a problem. Any dev’s know when we might have a texture output for the custom plugin nodes? Would be nice to really integrate this.

I asked the guy about f-in-box. He says, “The difference between my control and f-in-box(I don’t know their code internally, just know some things from their forums) is that my control is optimized for speed and copying to the video card better. And secondly, which is more important, that f-in-box did not work with mouse/keyboard input to the flash control when the physical flash active is not visible on screen.”

nkay…say i have fixed the problem u7angel mentioned in the beginning…(flash-renderer mysteriously only rendering while resizing a window)…would that be it? or would we still have to fix something with the get/set variables? sorry flash is a closed book to me…

hurra ! the vvvv gods heard my prayers :)

but we still need an easier solution for the get/set variable with as3. but maybe adobe brings back the function as it is still available, just not working.

the idea of a flash plugin might be a good idea anyway, to cope with next strange flash ‘enhancement’. …and more ppl have a chance to fix it…not just poor joreg. ;)

hey joreg, is a texture output for custom plugin nodes planned at all?

definitely planned, but without a timeframe (as usual).

I’ve just upgraded to flash CS4 so this topic has once again piqued my interest. Using the movieclip hack works, but is pretty limiting. I was hoping there would be an easy way to do it through local connection without having to load a dummy flash object or something like that.

This guy was apparently able to do it, but he refused to release his C# code: http://www.darronschall.com/weblog/2005/03/exploring-localconnection-for-c-and-flash.cfm
This would be great because then someone could write a plugin pretty quickly for piping data, but unfortunately it looks like it isn’t an option.

Also local connection might not be the best way to do it as the standard seems to now be leaning toward external interface. I think ideally it would be good to set it up through external interface. I would consider trying to make a plugin, but I wouldn’t be able to get the texture output like the current Renderer(Flash).

Here is some info on external interface:
http://osflash.org/ext_howto
http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/external/ExternalInterface.html

Otherwise I guess we are stuck using AS2 or something like OSC + FLOSC.

This is something I’d love to see some movement on. I haven’t yet had the chance or need to work more with FantastiqUI program and until we can get a texture out of a custom node it will require some not so nice stuff with shared memory.

However, upton_pickman has done some stuff recently with some local connection TCP stuff here. I haven’t had a chance to have a look at his kindly supplied code yet.

Yeah the ExternalInterface stuff looks a good route to go also. Will hopefully find some time to look more into this.

oh yeah, you’ll find a AS3 Flosc object and sample code I wrote, and M0m improved on, here. So we’re not stuck with AS2, only flosc.

Thanks for the tips xd_nitro. I got in to work today and thought I would make one last check here before starting this project in AS2 (something I really didn’t want to do, hehe). I’ll investigate FLOSC and especially the TCP method.

hi bois

since we are working on a project with the need of a seamless flash integration including interactions in vvvv we are actually about to write a new plugin.

since we have no texture out available we will put a layer out with the flash texture on a basic quad object in the first version.

We are planning to use FantastiqUI. It seems like it requires .NET3 to be installed. Anybody already sucessfully compiled and run examples within a .NET2 environment??

xd_nitro, did you work on such a plugin already meanwhile?

also i found this interesting thread
http://navi.agelessanime.com/forum/viewtopic.php?f=5&t=158

any hints and experiences are welcome. pleez

david

no I never got around to it. I had a little go with the sharedTexture method and FantastiqUI but never got it working. Issues with my C# skills and time. Was going to wait until texture out was implemented.

layer out? do we have that yet?

Text (EX9) has a layer out pin.