0

I build Flex applications. One of them shows slides. They're swf's loaded dynamically from a remote server at run-time. My slides are both re-sizable by the end user and animated.

This is easy on the PC with all the Flash support. For the iPad I use the Adobe Flex IOS packager. Pretty cool. Gets me just about everything I need - except swf's dynamically loaded at run-time. Apple's terms of service do not support it.

So I'm relegated to flattening slides into static images which don't scale well when users re-size them and obviously don't show animations.

If I built a native IOS app with XCode I could probably achieve this with KeyNote or something alike. Can't do it though. Don't have the time or resources.

Has anyone knowledge of a sneaky way to achieve this aesthetic via the Flex IOS packager? Is there some inventive way to sneak swf's in or use another image format like animated gif's or something else I'm not thinking of that might scale well?

Robert
  • 828
  • 2
  • 13
  • 28

2 Answers2

1

You can import swfs at runtime with frame labels. Your shell swf can then tell the loaded slide what to do based on the labels such as stop() or even adding listeners.

0

If you don't mind pre-compiling, you can compile all your SWFs into SWCs and load them dynamically, locally from your app. iOS should allow this in their TOS since the SWCs are basically a library of symbols / classes that you can then instantiate.

Here's a great tutorial on it, that pretty much is the workaround you're looking for.

If you still need to load SWFs (via a webservice, or some other outside source), then note that the technicality and "spirit" of the iOS Guideline against the loading of swfs is loading EXECUTABLE content, that can be interpreted and run at runtime (i.e. anything that could have actionscript within it).

The way around this is to only load swf's that have no Actionscript in them. "...files that contain only images, static text and embedded fonts are permissable..." (from this thread discusses this: http://forums.adobe.com/message/4004457)

Dominic Tancredi
  • 41,134
  • 7
  • 34
  • 50
  • Thanks. Unfortunately that won't get it. Compiling in and running locally is not an option. These are slide presentations being loaded into web meetings. Each meeting uses a different presentation and new presentations are created and added regularly. Has to be loaded dynamically from remote servers. Adobe connect has figured it out somehow. Their iPad app is loading swf's dynamically from remote servers. I can get swf's created by their program to load into my iPad app. So not all swf's are banned. It obviously has something to do with how the swf's are created. – Robert Dec 11 '11 at 21:33
  • The technicality and the "spirit" of the iOS Guideline against the loading of swfs is essentially loading EXECUTABLE content, that can be interpreted and run at runtime (i.e. anything that could have Actionscript within it that could run). There's a way around this, if your swf's never have anything that execute. This thread discusses this: http://forums.adobe.com/message/4004457 – Dominic Tancredi Dec 12 '11 at 03:22
  • Yeah, that's the lynchpin - ActionScript code. If there is some in your swf's, it's not allowed. My problem is I don't create swf's in question. They are produced by third party PPT to Flash conversion tools. Feed them a PPT and out the other end comes Flash swf's - one per slide. Resultant swf's are not loading on iPad so they must contain AS code, probably to run animations. Need a way to produce PPT to Flash slide conversion that IOS doesn't find objectionable. – Robert Dec 12 '11 at 17:00
  • Adobe Connect is an app like mine - presentation software. Feed it a PPT slide deck and it does an internal conversion to Flash. It's playing animations on the iPad. If I take the swf's Connect produces and load them into my iPad app the swf's load and animations do play. Means somehow they are producing swf's that run animations that do not contain executable AS code that IOS finds objectionable. I can't use them to do my conversion because other aspects of the resultant swf's are proprietary and won't play in my platform. Need a third party PPT to swf conversion tool that adds no AS – Robert Dec 12 '11 at 17:08
  • Try ispring's free converter... Impress (from OpenOffice) doesn't preserve Animation. Something is up in Adobe's workflow where they can do this... http://www.ispringsolutions.com/free_powerpoint_to_flash_converter.html – Dominic Tancredi Dec 12 '11 at 20:30
  • Have the ISpring SDK. Been using for a year or two. Works great. Just not for this. Swf's produced are objectionable to IOS for some reason. Not sure why. My guess is that they have AS code in them. Posted on the ISpring site. Waiting to see if they will have any suggestions. – Robert Dec 12 '11 at 23:19
  • It's difficult without knowing the process of the conversion. You could download Impress and attempt to reverse-engineer the process of PPT -> SWF. But it would be more cost-effective to just have a flash developer hand-re-create the swf from a powerpoint. I've found 2 other packages (http://www.authorgen.com/authorpoint-lite-free/getting-started.aspx) but without knowing their process it's difficult to vet. Even decompiling will output actionscript. – Dominic Tancredi Dec 13 '11 at 04:56
  • Yeah, not knowing the conversion is the trouble spot. Flash developer wouldn't be cost effective. The slide decks will be coming in quantities of 10, 20, 30 a week from now until eternity. Need an automated conversion process. There appear to be conversion processes that fit the bill - Connect being one of them. Problem is their outputs are in the Master slide/layout slide configuration. If I knew how to merge these in my display in my Flex app I'd have a working solution. A command line utility called swfcombine purports to be able to merge master/layout slide output as well. – Robert Dec 13 '11 at 18:30
  • Not sure which way to go yet. I'd love to be able to display a master/layout slide arrangement in Flex. – Robert Dec 13 '11 at 18:39
  • I've seen people using Articulate Presenter to create swf's as well if that helps (http://www.articulate.com/products/presenter.php). The master / layout slider arrangement is difficult because you'd have to be able to parse a PPT which is tricky. – Dominic Tancredi Dec 13 '11 at 19:25
  • Or check out this question about parsing PPT straight into Actionscript (http://stackoverflow.com/questions/2880406/as3-possible-to-read-ppt-file). – Dominic Tancredi Dec 13 '11 at 19:27
  • Yeah, Articulate I think is an Adobe product. It probably uses the same conversion engine as Connect. I had a trial version of it here a few days ago and it produced the same master/layout slide output. If I could just display that in Flex as they do I'd be in business. – Robert Dec 13 '11 at 19:51
  • And the plot thickens. Used AuthorPoint to do a conversion. The resultant swf's loaded into the iPad app and animations played. Unfortunately the slides look a little different. Additionally, the animations do play but they loop over and over again on each slide. Then I tried another route. Took a Connect conversion and used the swfcombine command line utility to combine master and layout slide layers. Resultant swf's loaded on iPad, looked good, but looped over and over again on each slide. Same swf's don't repeat in my Flex app on a PC - only when Flex packaged for IOS. Close... – Robert Dec 13 '11 at 22:51
  • Further research yields the fact that IOS doesn't honor the AS stop() command. Swf's containing stop() still load, but the command is ignored. This is what I am seeing. When I decompile each slide swf I see the stop()'s. They are just ignored. This is really turning into a different question now. I'll post separately. – Robert Dec 14 '11 at 19:09
  • Right, that's a different question. Basically, if you can find out how long the presentation is, you might be able to inject code to tell it to halt (or use some visualization / remove the object / number of other solutions to stop the presentation). But the presentation itself cannot stop. That's interesting actually as that would mean all swf's loaded for iPad either need to be static OR loop... – Dominic Tancredi Dec 14 '11 at 20:25