23 Replies Latest reply on May 4, 2006 9:16 AM by mark2741

    Flash Button In Captivate To Control Breeze Presenter

    i_am_captivate Level 1
      Hello everyone,

      I would like to create a button in flash that once click, will automatically advance a slide in the Breeze Presenter. This button will be in a Captivate simulation that I have. The way my simulation works is that the user has to click on a start button (created in flash) in the Breeze Presenter, and the simulation is opened in a new, full screen window. Once the simulation has completed, I would like to be able to have the user click a "Close" button, and then have the movie close, and the Brezze Presenter go onto the next slide. Any help at all would be GREATLY appreciated.

      Thanks

      Doug
        • 1. Re: Flash Button In Captivate To Control Breeze Presenter
          asm0d Level 1
          Hi,

          As I understand it, slides are advanced by the code built in to the "viewer.swf" Flash object. The only way you could cause the viewer to advance the slide (other than clicking one of its buttons) would be if it was programmed to respond to external communications. I have heard that earlier versions of Breeze actually included the project file (*fla) for the viewer file, which would be necessary to see if (and how) the viewer is set up to receive commands. It may use the fscommand() method, or it may use the LocalConnection() method. We'd need to know what command(s) it responds to, and what the local connection name is (for the latter).

          If anyone has access to a viewer *fla file and can look these up, or one of the nice Macromedia people would like to provide the info, I'll happily write the code for this. The only other option is to send random commands to the viewer, and see if it responds.
          • 2. Re: Flash Button In Captivate To Control Breeze Presenter
            i_am_captivate Level 1
            Thanks for replying, I found this post in the archives....

            http://www.directorforum.de/archive/index.php/t-41713.html

            Would this help at all?

            Thanks

            Doug
            • 3. Re: Flash Button In Captivate To Control Breeze Presenter
              asm0d Level 1
              Hi,

              I haven't had any luck modifying the property "rs" to cause it to change slides, either by referencing _level0 or _root. I assume that "rs" is something custom in the breeze viewer code, as it's not a standard property or method, but it may be from an earlier version. Really, we could solve this in a few seconds if we could see the Actionscript associated with the viewer.swf file I'd be willing to bet we don't have to mess around with _root, that it accepts external commands for simple stuff like this.
              • 4. Re: Flash Button In Captivate To Control Breeze Presenter
                i_am_captivate Level 1
                Can you give me an example of external commands we could try?
                • 5. Re: Flash Button In Captivate To Control Breeze Presenter
                  asm0d Level 1
                  Hi!

                  If you want to control the viewer with a Flash button you've embedded in a powerpoint slide (prior to using presenter to convert it) try this:

                  (1) Make your button in Flash, and add this Actionscript to the first slide (replace [btnName] with the name of your button instance:

                  btnName.onRelease = function () {
                  _root.m_controlBar.m_slideNextBtn._onRelease();
                  }

                  (2) Insert your button's swf in the PPT presentation and compile with Presenter. Now, when the user clicks the button, it will simulate pressing the "next slide" button in the viewer's control bar.



                  Here are some of the other button names; to use these instead, just replace "m_slideNextBtn" in the above code:

                  Play/pause button "m_playBtn"
                  Next slide button "m_slideNextBtn"
                  Previous slide button "m_slideBackBtn"
                  View changer button "m_viewChangeBtn"
                  Attachment Button "m_attachmentsBtn"
                  Volume Button "m_volumeBtn"



                  Hope that helps!

                  ~Marc B


                  • 6. Re: Flash Button In Captivate To Control Breeze Presenter
                    i_am_captivate Level 1
                    Hi,

                    This information is very helpful. Thanks for the reply.

                    My other question is this: I have a flash button in powerpoint that is set up to open a full screen window so the viewer can do a simulation. Once the simulation is completed, I want there to be a button (not associated with powerpoint) that the viewer can click, that will close the full screen window and tell breeze to go to the next slide in the presentation and play from there. Will the script you provided me work with a button like that?

                    Thanks

                    Doug
                    • 7. Re: Flash Button In Captivate To Control Breeze Presenter
                      asm0d Level 1
                      How you close the new window will depend on what it is; if it's a standalone Flash player, use fscommand("quit"); if it's something embedded in an HTML shell, use window.close(), etc.

                      Now, sending code to the viewer.swf is another matter. As we've discussed, I don't think the viewer itself is set up to respond to external commands, so you might try embedding a Flash module in your presentation that *is*, and then using it as a bridge. This embedded application will have some code to wait for an external command (using the LocalConnection method, fscommand, or the setVariable method) and then send the "next slide" command up to the viewer using the method above.

                      Here's an article on exchanging info between modules: Flash to JavaScript & Back

                      • 8. Re: Flash Button In Captivate To Control Breeze Presenter
                        mark2741 Level 1
                        Damn Marc - as usual, this is excellent stuff! How did you figure this out? Did you use the debugger in flash while running the viewer.swf?
                        • 9. Re: Flash Button In Captivate To Control Breeze Presenter
                          i_am_captivate Level 1
                          Marc, you definitely are a genius with this stuff. Thanks for all your help, hopefully I can get this going

                          Thanks

                          Doug
                          • 10. Re: Flash Button In Captivate To Control Breeze Presenter
                            asm0d Level 1


                            I made a small button to replace the macromedia logo in the viewer.swf, and had it load in a movie containing a text field. (That way, I didn't have to keep re-compliling a presentation every time I changed the code). In the button's code, I used a "for...in" loop to send all the properties and methods for likely objects (like m_controlBar) to the text field. Once I had a list of those, I tried changing properties and invoking methods until I found the ones that did what I wanted. I'm still looking - most of the time, nothing happens, but some (like m_controlBar.enabled=false) are interesting. I was rather disappointed to find that the viewer.swf code doesn't respond to any external commands, though.

                            cheers!
                            • 11. Re: Flash Button In Captivate To Control Breeze Presenter
                              i_am_captivate Level 1
                              Im trying to get this to work in flash, but Im having a hard time writing the code for it.

                              What I want to do is have a flash button inside of Breeze, that will open a new fullscreen window, the user will then have to complete a simulation. When the simulation has completed, the user will be required to click a close button, that will take them back to the breeze presentation.

                              In the button that is embedded in the ppt slide, I want to set it up such that it will await a command from the "close" button at the end of the simulation. The close button will tell the button in breeze to go to the next slide and continue the presentation. I have tried all weekend to come up with something with no success. If anyone has any suggestions, it would be greatly appreciated.

                              Thanks

                              Doug
                              • 12. Re: Flash Button In Captivate To Control Breeze Presenter
                                asm0d Level 1
                                All weekend? I wasted mine playing Oblivion


                                Okay, you should be able to export your captivate information directly into a Flash project file (*fla) which should make this relatively easy. If that is the case, you can either embed the final *swf directly in the presentation, or use the attachMovie method in Actionscript to load it on top of the viewer.swf (if you really need it to be full screen).

                                If all you have is some sort of standalone movie file, on the other hand, you should probably create a simple html page to hold it, and use a hyperlink (or an action button) in PPT to launch it. Make sure to use a relative link, so you can test it before zipping & uploading to the Breeze Server.
                                Next, you need to make two small Flash modules: one for the html wrapper (the "close" button) and one embedded in the main PPT (the "bridge" module). When the user clicks the "close" button, it should do two things:
                                (1) Use the fscommand to activate a JavaScript command embedded in the HTML code to close the window. There's another article on the forum on how to do this.
                                (2) Use a LocalConnection object to invoke a function in the "bridge" module. The bridge module function uses the code (as described last Friday) to programmatically advance the main presentation.

                                The above method should work for any standalone applet you might need to run from within a Breeze presentation, but it would look a LOT nicer if you could convert your captivate info into Flash, and use Actionscript to control it.


                                Cheers!

                                ~Marc B
                                • 13. Re: Flash Button In Captivate To Control Breeze Presenter
                                  i_am_captivate Level 1
                                  Well that was going to be my next question, how can I get better quality stuff? I find in Breeze, right now everything looks sort of blurry, so importing it into flash and controlling it with AS will make it look better?
                                  • 14. Re: Flash Button In Captivate To Control Breeze Presenter
                                    asm0d Level 1
                                    There's an article dealing with bitmap and vector graphics a little further down on the forum. Basically, the compression Flash applies to bitmap graphics is pretty severe, and results in blurry artwork. Vector artwork, on the other hand, always looks good as its the native format for both Flash and PPT.

                                    If your artwork is something like a piping diagram or a cartoon, try using a vector format when you want crisp illustrations. Most vector drawing programs (CorelDraw is my personal favorite) will export directly in *swf format, which can then be stuck in your PPT like any other Flash module. The only downside is that Flash modules are always on top of the other slide contents & can't be animated.

                                    You can also try exporting as a *wmf file, then converting in PPT, but this results in a HUGE number of objects in PPT and thus a big slowdown for detailed drawings. I have to admit I haven't experimented much with movies, as our network probably wouldn't survive hundreds of people watching a training MPEG while the rest surf the net.

                                    • 15. Re: Flash Button In Captivate To Control Breeze Presenter
                                      i_am_captivate Level 1
                                      So that is why my captivate movies look terrible in breeze.... Would you recommend getting rid of Captivate altogether and using strictly flash for development purposes? What I am currently doing is taking my screen captures in Captivate, publishing them, and then inserting into breeze that way, what would you recommend?
                                      • 16. Re: Flash Button In Captivate To Control Breeze Presenter
                                        asm0d Level 1
                                        I suppose it depends on what you are capturing. If its "how to use this software application"-type screenshots (or movies) you should probably stick with Captivate, exporting them as *fla files so you can open them in Flash and write some code to go along with them. Once you publish to an *swf file, the quality should remain constant thereafter, meaning you can at least see how blurry it will get before you stick it in a PPT slide and convert it to Breeze.

                                        However, if you had some more development time, you could make your own movie in Flash. This would take longer, but the quality would always be top notch. I've also replaced movies altogether with basic simulators for some projects; rather than watching a movie, the student could actually "play" with the application (open menus, call up tools, or whatever I was trying to illustrate).

                                        Plus, simulators and games are basically the same thing, so they're kind of fun to make
                                        • 17. Re: Flash Button In Captivate To Control Breeze Presenter
                                          i_am_captivate Level 1
                                          Hi,

                                          I can't seem to export Captivate files as FLA files because I get the "You should have Flash MX 2004" installed. But I did find a technote to make it so I could import .cp files into Flash 8. Eventhough I can now import the files, they are still displaying poor quality in the breeze presenter. They display perfectly in the flash player, but as soon as I publish the breeze presentation, they are not the quality i would like for them to be. I am certain I am publishing them correctly within Flash, Im using Flash player 6, AS version 1.0, is there something I am missing? In the .cp file, I have all the compression options off... Any suggestions? Again, I am using 720 x 540 resolution, which is what breeze recommends.....

                                          Thanks

                                          Doug
                                          • 18. Re: Flash Button In Captivate To Control Breeze Presenter
                                            asm0d Level 1
                                            Sorry - I've never worked with Captivate directly. It sounds like what you're importing is some sort of mpeg or avi, though. You may want to consider an alternative to using a Captivate movie if the quality is too low after its compressed.

                                            Cheers!

                                            ~Marc B
                                            • 19. Re: Flash Button In Captivate To Control Breeze Presenter
                                              i_am_captivate Level 1
                                              Its all good, you have been more than helpful... I am sure I will have some more Flash questions soon.....

                                              Thanks!
                                              • 20. Re: Flash Button In Captivate To Control Breeze Presenter
                                                mark2741 Level 1
                                                I had a problem with fuzzy captivates too. It wound up being due to the html file that was calling it had something funky going on with it. Since you're putting the Captivates into a slide, which is then compressed further by Breeze I believe upon publishing, you may get some fuzziness. Marc B helped me to troubleshoot that one : )

                                                Since you're putting them right onto Breeze, about the only thing you can do is ensure that you are capturing them at the right size and also once put onto the breeze slide you are stretching them to the proper size needed to display sharply. But I've found that Breeze will make things at least a tad bit fuzzy and there's nothing I could figure out to fix it. I'll be doing a lot more Breeze stuff later this year and will spend some time (days if I have to) before beginning trying to figure out the best approach.

                                                One thing I would recommend is to avoid bringing it into Flash altogether. I started doing that a while back because I thought it provided me versatility, but then quickly realized that it wasn't really giving me any benefit, and just resulted in flash timelines of over 5000 frames and often more. For some of my stuff I only use Breeze as a server and on it I house my own separate captivate player (not Jester's) that I developed, and I call in the captivates into that. I had a problem with those being fuzzy and it turned out to be the html file (which brings up a whole other breeze issue - the ability to use loadMovie in Breeze isn't supported properly, but contrary to who you speak with at Macromedia, it can and does work with a workaround). The html file that calls the swf's was stretching the captivates ever-so-slightly.

                                                Wish I could help more. If you want you could send me your swf and I'll try it out on my end. You can upload it here:

                                                http://breeze97993712.beta.breezecentral.com/mark/

                                                I'll try to play around with it to see if I can figure anything out with it.
                                                • 21. Re: Flash Button In Captivate To Control Breeze Presenter
                                                  i_am_captivate Level 1
                                                  Hey Mark,

                                                  Thanks for your reply. What I came to realize that bringing it into Flash is not a good idea, as it takes away all of the mouse movements and stuff like that. I am going to stick with the 720 x 540 resolution, I am quite satisfied with it. My desire would be to be able to insert 800 x 600 .swf files into PPT, but realized that PPT is cropping them because they are not within the recommended 720 x 540. So I am now satisfied with the quality, but, the buttons are still an issue, I am just missing something I guess, as mentioned before, I want to be able to have a *start* button in the Breeze Presenter window, that will open a new window, which actually starts a Captivate simulation. At the end of the simulation, I want a *finish* button that the user can click on, and then continue the Breeze presentation where it left off. I am trying to use fscommand and localconnection but am not having any luck, if any of you geniuses could drop some suggestive code for me, it would be greatly appreciated. Again, thank you all for your help.

                                                  Doug
                                                  • 22. Re: Flash Button In Captivate To Control Breeze Presenter
                                                    mark2741 Level 1
                                                    Doug,

                                                    Sorry if I'm coming into this discussion late and I don't have time right now to look through it from the start. Is a new window acceptable? Meaning, when the user clicks on the button in the Breeze presentation, is it okay if a new browser window opens? If that's the case, then you should be able to just create a button (it's been a while since I looked at Captivate so I'm not sure if you can do it in there or not, but at the very least you could do it in Flash) that opens up a new blank window and accesses the URL with the captivate movie.

                                                    Actually, I'm glad you asked this, because it gives me something to consider when I start developing my next round of elearning courses. I hate the idea of embedding captivates into powerpoint. This alleviates you from needing to do so, and also alleviates the size restrictions of ppt:

                                                    Upload the captivate-generated swf to the Breeze content area. You'll need to remember to set permissions appropriately. Then just copy the URL for that captivate swf and call it via your button. In flash the button code would look like this:

                                                    myButton_btn.onRelease = function() {
                                                    getURL(" http://mybreezeserver.com/mySWF", "_blank");
                                                    }

                                                    If you want to control the appearance of the browser/page appearance, you'll need to upload the captivate-generated swf (as described above) along with the calling html file. You do this by zipping them up together into a zip file and naming the html file: index.htm. As long as they're zipped up together then Breeze will be keep the pathing correct for you.

                                                    Also, you mention wanting to close the captivate window. I'm not sure exactly how this is done, but I'm sure at the very least you could do it via javascript by using the zipped up method above - from the Breeze presentation just call the index.htm file, which calls the swf. Then at the end of the cp swf, have a button that calls a "browser close" command via javascript. I'm not familiar with javascript and have admittedly never used this, so I may be off. Hopefully Marc or someone can chime in.

                                                    Of course, if a new blank window is unacceptable to you, then my suggestions are out the window (no pun intended!). : )

                                                    mark
                                                    • 23. Re: Flash Button In Captivate To Control Breeze Presenter
                                                      mark2741 Level 1
                                                      One more thing - you mentioned that upon import to flash you lose your mouse tweens and such generated by captivate. Back when I was trying out the import cp thing, thinking it served a real purpose : ), I was able to bring in the cp file complete, including mouse movements and captions and such. Only issue I noticed was some audio problems - flash always inserted a new layer called either 'sound' or 'audio' I think and it always had a bunch of overlay-like graphics that screwed my captions up. Going in level upon level to clean them up was another reason to scrap the idea of importing cp into flash.

                                                      I believe there is a checkbox(es) that you can specify to ensure that your cp export brings in the mouse animations and such.

                                                      mark