Static publishing + callback could be interesting. I was only looking at dynamic publishing...
(checking loading % through js with a timer seems like a worse hack than using EI :) A On Mon, Nov 7, 2011 at 1:19 PM, Philip Hutchison <platelu...@gmail.com>wrote: > Nothing is ever as easy as it should be, no? :) > > Hmm... perhaps focus will only work when the SWF has completed loading, > which may be why your ExternalInterface and body onload approaches both > work. If that's the case, you could still set focus using the callback, > but it gets a bit more complicated. You could use a timer as described > here<http://learnswfobject.com/advanced-topics/executing-javascript-when-the-swf-has-finished-loading/>. > > > Probably simpler to use static publishing with an swfobject.addLoadEvent > call, though. > > I think I'll make some test pages for this when I can find time... > > > > On Mon, Nov 7, 2011 at 10:46 AM, Aran Rhee <aran.r...@gmail.com> wrote: > >> @Philip. >> >> Thanks for your input / background articles. >> >> Unfortunately in my own recent findings, using the callback function >> provided by SWFObject still fails to focus the element correctly in a bunch >> of browsers (my hypothesis is that it is still too early to be able to >> focus correctly) >> >> I agree that this would have been a really nice clean way to make it >> happen (if it had worked) >> >> >> A >> >> >> >> On Mon, Nov 7, 2011 at 12:19 PM, Philip Hutchison >> <platelu...@gmail.com>wrote: >> >>> Traditionally, only links and form controls can receive focus. Since >>> <object> is not a link or form element, it isn't capable of receiving focus >>> in most browsers unless you set its tabIndex property. >>> >>> Jonathan Snook wrote a nice overview about focus and tabIndex a while >>> back: >>> >>> http://snook.ca/archives/accessibility_and_usability/elements_focusable_with_tabindex >>> >>> The MDN has a good overview of the topic as well: >>> >>> https://developer.mozilla.org/en/Accessibility/Keyboard-navigable_JavaScript_widgets >>> >>> W3C's word on the topic (as relates to ARIA): >>> http://www.w3.org/WAI/PF/aria-implementation/#keyboard-focus_tabindex >>> >>> As far as it relates to SWFObject, I'd invoke focus() using SWFObject's >>> callback function since it doesn't involve editing the SWF: >>> >>> >>> <script type="text/javascript"> >>> var flashvars = {}; >>> var params = { menu: false, salign: "tl", bgcolor: "#F7ECDA" }; >>> var attributes = { id: "swfContent" }; >>> var callbackFn = function(e){ >>> if(e.success){ >>> e.ref.tabIndex = "-1"; >>> e.ref.focus(); >>> } >>> }; >>> >>> swfobject.embedSWF("VendMach.swf", "flashDiv", "1152", "864", >>> "9.0.0", "expressInstall.swf", flashvars, params, attributes, >>> callbackFn); >>> </script> >>> >>> >>> By the way, setting params.quality = "best" is not necessary -- "best" >>> is Flash's default setting. >>> >>> >>> - philip >>> >>> >>> >>> >>> On Mon, Nov 7, 2011 at 10:02 AM, Aran Rhee <aran.r...@gmail.com> wrote: >>> >>>> @Alex - Using the ExternalInterface methodology of calling focus from >>>> within the swf after it is rendered etc (as described in my first response) >>>> worked in all recent versions of FF/Safari/IE/Chrome/Opera that I tested. >>>> >>>> Setting the tab index seemed to fix the focus issue on some versions. >>>> >>>> In my situation, I needed not only to focus the swf on page load (kiosk >>>> app driven by keyboard / remote control), but needed to be able to defocus >>>> the Flash so the swap browser tab shortcut worked on FF as well... It was >>>> pretty annoying to get working, but boiled down to some pretty simple >>>> functions in the end... >>>> >>>> >>>> Cheers, >>>> Aran >>>> >>>> >>>> >>>> >>>> On Mon, Nov 7, 2011 at 11:54 AM, Alex Harui <aha...@adobe.com> wrote: >>>> >>>>> Which browser and version of the browser? I am under the impression >>>>> that >>>>> the focus() call doesn't work on all browsers. >>>>> >>>>> >>>>> On 11/7/11 9:33 AM, "tidybox" <tidy...@hotmail.co.uk> wrote: >>>>> >>>>> > Thanks for the quick response and I have tried both your suggestions >>>>> > but still not working! >>>>> > I'm not the best at coding and my original code doesn't seem to >>>>> > reflect your suggestions so maybe I'm altering it incorrectly (I used >>>>> > the air swfObject2 generator)! >>>>> > Here is my HTML code before adding any of your stuff and maybe you >>>>> can >>>>> > point me in the right direction as to where to place the new code. >>>>> > >>>>> > Much appreciated >>>>> > >>>>> > <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http:// >>>>> > www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> >>>>> > <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> >>>>> > <head> >>>>> > <title>Portfolio</title> >>>>> > <meta http-equiv="Content-Type" content="text/html; >>>>> > charset=ISO-8859-1" /> >>>>> > <script type="text/javascript" src="swfobject.js"></script> >>>>> > <script type="text/javascript"> >>>>> > var flashvars = {}; >>>>> > var params = {}; >>>>> > params.menu = "false"; >>>>> > params.quality = "best"; >>>>> > params.salign = "tl"; >>>>> > params.bgcolor = "#F7ECDA"; >>>>> > var attributes = {}; >>>>> > attributes.id = "swfContent"; >>>>> > swfobject.embedSWF("VendMach.swf", "flashDiv", "1152", "864", >>>>> > "9.0.0", "expressInstall.swf", flashvars, params, attributes); >>>>> > </script> >>>>> > <style type="text/css" media="screen"> >>>>> > object { outline:none; } >>>>> > <!-- >>>>> > body { >>>>> > background-color: #F7ECDA; >>>>> > margin-left: 0px; >>>>> > margin-top: 0px; >>>>> > margin-right: 0px; >>>>> > margin-bottom: 0px; >>>>> > } >>>>> > --> >>>>> > </style> >>>>> > <meta name="Keywords" content="Graphic Designer, Graphic Design, >>>>> > Photoshop, illustrator, animation, print work, design, inDesign, >>>>> > freelance" /> >>>>> > <meta name="Description" content="MyPortfolio, freelance graphic >>>>> > designer" /> >>>>> > </head> >>>>> > <body> >>>>> > <div id="flashDiv"> >>>>> > <a href="http://www.adobe.com/go/getflashplayer"> >>>>> > <img src="http://www.adobe.com/images/shared/download_buttons/ >>>>> > get_flash_player.gif" alt="Get Adobe Flash player" /> >>>>> > </a> >>>>> > </div> >>>>> > </body> >>>>> > </html> >>>>> > >>>>> > ____________________________________________________________________ >>>>> > >>>>> > On Nov 7, 4:20 pm, Aran Rhee <aran.r...@gmail.com> wrote: >>>>> >> Have a read of my reply to this question in this thread: >>>>> >> >>>>> >> >>>>> http://groups.google.com/group/swfobject/msg/b0dc02d06db7aa43?hl=en_US >>>>> >> >>>>> >> That in my opinion is the correct way to do it (as you can ensure >>>>> the focus >>>>> >> (and defocus) calls work as intended) >>>>> >> >>>>> >> A simpler way which works in *most* browsers is to call a function >>>>> on page >>>>> >> load. Set the name and id in your attributes object for your >>>>> embedSWF() >>>>> >> call, and then call the focus method once all the page content had >>>>> loaded. >>>>> >> >>>>> >> <head> >>>>> >> <script type="text/javascript"> >>>>> >> function setFocus() >>>>> >> { >>>>> >> document.getElementById('myflashid').focus();} >>>>> >> >>>>> >> </script> >>>>> >> ... >>>>> >> </head> >>>>> >> >>>>> >> <body onLoad="setFocus();"> >>>>> >> >>>>> >> Aran >>>>> >> >>>>> >> >>>>> >> >>>>> >> >>>>> >> >>>>> >> >>>>> >> >>>>> >> On Mon, Nov 7, 2011 at 10:09 AM, tidybox <tidy...@hotmail.co.uk> >>>>> wrote: >>>>> >>> I have an HTML page with only a single flash object on it which is >>>>> >>> embedded using the 2.1 swfObject "Dynamic" generator and I want to >>>>> be >>>>> >>> able to use the keyboard straight away without the user first >>>>> having >>>>> >>> to click on the flash movie first! Can anyone advise me what code I >>>>> >>> should use and where should it be placed in the generated HTML?? >>>>> >> >>>>> >>> Thanks >>>>> >> >>>>> >>> -- >>>>> >>> You received this message because you are subscribed to the Google >>>>> Groups >>>>> >>> "SWFObject" group. >>>>> >>> To post to this group, send email to swfobject@googlegroups.com. >>>>> >>> To unsubscribe from this group, send email to >>>>> >>> swfobject+unsubscr...@googlegroups.com. >>>>> >>> For more options, visit this group at >>>>> >>> http://groups.google.com/group/swfobject?hl=en. >>>>> >>>>> -- >>>>> Alex Harui >>>>> Flex SDK Team >>>>> Adobe System, Inc. >>>>> http://blogs.adobe.com/aharui >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "SWFObject" group. >>>>> To post to this group, send email to swfobject@googlegroups.com. >>>>> To unsubscribe from this group, send email to >>>>> swfobject+unsubscr...@googlegroups.com. >>>>> For more options, visit this group at >>>>> http://groups.google.com/group/swfobject?hl=en. >>>>> >>>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "SWFObject" group. >>>> To post to this group, send email to swfobject@googlegroups.com. >>>> To unsubscribe from this group, send email to >>>> swfobject+unsubscr...@googlegroups.com. >>>> For more options, visit this group at >>>> http://groups.google.com/group/swfobject?hl=en. >>>> >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "SWFObject" group. >>> To post to this group, send email to swfobject@googlegroups.com. >>> To unsubscribe from this group, send email to >>> swfobject+unsubscr...@googlegroups.com. >>> For more options, visit this group at >>> http://groups.google.com/group/swfobject?hl=en. >>> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "SWFObject" group. >> To post to this group, send email to swfobject@googlegroups.com. >> To unsubscribe from this group, send email to >> swfobject+unsubscr...@googlegroups.com. >> For more options, visit this group at >> http://groups.google.com/group/swfobject?hl=en. >> > > -- > You received this message because you are subscribed to the Google Groups > "SWFObject" group. > To post to this group, send email to swfobject@googlegroups.com. > To unsubscribe from this group, send email to > swfobject+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/swfobject?hl=en. > -- You received this message because you are subscribed to the Google Groups "SWFObject" group. To post to this group, send email to swfobject@googlegroups.com. To unsubscribe from this group, send email to swfobject+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/swfobject?hl=en.