oops, link in last post should have been
http://code.google.com/p/swfobject/wiki/api#swfobject.embedSWF%28swfUrlStr,_replaceElemIdStr,_widthStr,_height


On Aug 30, 7:13 pm, philip <[email protected]> wrote:
> hi perrin
>
> you mention you want to embed a SWF in every <div class="flash">. your
> example illustrates that you want to embed the same SWF for every <div
> class="flash">. this can be accomplished by using embedSWF in a custom
> function.
>
> seehttp://code.google.com/p/swfobject/wiki/api#swfobject.createSWF%28att...
>
> you could do something like:
>
> var flashElements = getElementsByClassName("flash");
> var flashElementsCount = flashElements.length;
> var flashvars = {};
> var params = {};
> var attributes = {};
>
> for(var i = 0; i < flashElementsCount; i++){
>    var id = "swf_" +i;
>    flashElements[i].id = id;
>    swfobject.embedSWF("mymovie.swf", id, "550", "400",
> "9.0.0","expressInstall.swf", flashvars, params, attributes);
>
> }
>
> (of course there are a gazillion ways to refactor this code, but you
> should get my point)
>
> in your examples you always mention swfobject.registerSWF; this is
> only to be used for *static* publishing (dynamic publishing already
> handles this chore). i don't understand why you're using registerSWF
> if you're adding SWFs dynamically.
>
> - philip
>
> On Aug 27, 2:29 am, Perrin4869 <[email protected]> wrote:
>
> > Well, document.getElementById(id); is just an example, you can easily
> > get dom elements with functions like
> > document.getElementsByName(name) or a custom getElementsByClassName
> > (className) fuunction,
> > and iterate them, registering them to swfobject.
> > Your method is what I've been using up until now, but it has
> > shortcomings. First, I must take care of both markup and scripts,
> > instead of automatizing.
> > Second of all, the 10 there is an arbitrary number, in a real code I'd
> > need to figure out what the count is myself.
>
> > Let's say I created a file upload control in PHP, and someone uploaded
> > Flash content with it. Now, my file upload control also has the
> > capability of previewing which content
> > it has saved before, and also if it's Flash, it can embed it for a
> > preview. But, I don't know the number of upload controls, and I also
> > don't know the upload controls that have
> > Flash saved in the database, and having them register some header
> > content is not really a possibility. Now, if I could just give those
> > elements a class name or something
> > to go by which can be easily queried, the problem would be solved by
> > querying those elements, and registering them through an iteration,
> > like in my example in the first post.
>
> > var flashElements = getElementsByClassName("flash");
> > var flashElementsCount = flashElements.length;
> > var i;
> > for(i = 0; i < flashElementsCount; i++)
> > {
> >     swfobject.registerObject(flashElements[i], "9.0.0");
>
> > }
>
> > I hope I made what I am trying to accomplish clear. I mean, having to
> > give an ID to each object is just a pain, and it doesn't really have a
> > clear advantage, sometimes you
> > just want to create a collection of Flashes for any reason, and
> > register them by iterating, and if their count is variable then you
> > have to take care of figuring it out, ending
> > with lower performance code.
>
> > Thanks for the attention!
> > Perrin4869
>
> > On Aug 27, 6:09 am, Aran Rhee <[email protected]> wrote:
>
> > > RE: using document.getElementById("") - Right, but you just said you 
> > > didn't
> > > want to create any id's, so hopw are you going to use that method?
>
> > > So the way I see it is that your problem can be broken down into two 
> > > parts:
>
> > > 1) creating the required page elements
> > > 2) calling swfobject methods
>
> > > In regards to 1), if you use a server-side language, or something like
> > > jQuery to generate your static publish blocks, then you can have a class
> > > (for styling / positional purposes) and a id naming convesion put in place
> > > really easily. How were/are you creating all of your <object> blocks 
> > > anyway?
>
> > > Then for 2) in calling registerObject(), you can just pass your common
> > > naming convension + counter in a loop like your example code.
>
> > > // simplified example
> > > for(i = 0; i < 10; i++)
> > > {
> > >    swfobject.registerObject("swf_file" + i , "9.0.0");
>
> > > }
>
> > > Aran
>
> > > On Thu, Aug 27, 2009 at 11:47 AM, Perrin4869 
> > > <[email protected]>wrote:
>
> > > > Sorry for the typo on my post above, in the first line I meant passing
> > > > a DOM Element,
> > > > like the ones you get by document.getElementById("");.
>
> > > > On Aug 27, 4:01 am, Perrin4869 <[email protected]> wrote:
> > > > > Well, doesn't passing a DOM give you total control over the individual
> > > > > element/swf?
> > > > > And if it doesn't, can't SWFObject generate the ID for the object
> > > > > automatically? Leaving it up to each element to define it is not
> > > > > practical at all, leaving the possibility of duplicates, for example.
>
> > > > > The whole idea is that if a list of swf files get embedded, and
> > > > > there's a variable number of them, you can just register them by a
> > > > > common denominator, like a class or name.
>
> > > > > And editing SWFObject isn't a very attractive solutions because of two
> > > > > reasons:
> > > > > 1) I would have to take the enormous task of learning how it works.
> > > > > 2) I would have to make changes for each future release.
>
> > > > > Thanks for the support!
> > > > > Perrin4869
>
> > > > > On Aug 27, 3:40 am, Aran Rhee <[email protected]> wrote:
>
> > > > > > Well, a class is not unique, so how were you thinking to target an
> > > > > > individual element / swf on the page? We need a unique DOM id for 
> > > > > > doing
> > > > > > things like ExternalInterface calls to/from the swf file, and being
> > > > able to
> > > > > > target removing alternate content etc.
>
> > > > > > Also how is it that ids cannot be fully trusted? The whole DOM thing
> > > > kinda
> > > > > > relies on the fact that it does work :)
>
> > > > > > RE: Generating id's / elements:
>
> > > > > > // client side
> > > > > > var div = jQuery('<div>Some text</div>').addClass('foo').attr('id',
> > > > 'bar');
> > > > > > div.appendTo(document.body);
>
> > > > > > // or use a serverside language like php.
>
> > > > > > it is really not very hard...
>
> > > > > > SWFObject is open source, so if you feel you want to make a mod to 
> > > > > > suit
> > > > your
> > > > > > own needs.
>
> > > > > > Aran
>
> > > > > > On Thu, Aug 27, 2009 at 10:00 AM, Perrin4869 
> > > > > > <[email protected]
> > > > >wrote:
>
> > > > > > > Hello, I've been using SWFObject for my Flash embedding needs.
> > > > > > > Now, I think that the registering method is a bit flawed. If I 
> > > > > > > wanted
> > > > > > > to automatize the registering process, or even register 
> > > > > > > dynamically
> > > > > > > generated items, having to pass an ID is disadvantageous. 
> > > > > > > Generating
> > > > > > > an ID for each element is a tedious work, and you can never fully
> > > > > > > trust it.
>
> > > > > > > Now, what I'd like to accomplish is to register the flash elements
> > > > > > > based on a class given to them. I'd like to do something like 
> > > > > > > this:
>
> > > > > > > var flashElements = document.getElementsByClassName("flash");
> > > > > > > var flashElementsCount = flashElements.length;
> > > > > > > var i;
> > > > > > > for(i = 0; i < flashElementsCount; i++)
> > > > > > > {
> > > > > > >    swfobject.registerObject(flashElements[i], "9.0.0");
> > > > > > > }
>
> > > > > > > Is there a way with the current version of SWFObject to accomplish
> > > > > > > what I'm trying to achieve? If not, what are the chances of 
> > > > > > > getting
> > > > > > > support for it in subsequent versions?
>
> > > > > > > Thanks for the help!
> > > > > > > Perrin4869.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"SWFObject" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/swfobject?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to