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!).
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…
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.
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).
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.
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.
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.