I'm trying to pass parameters from HTML-land to Flex-3 Flash-land, and can't seem to get it to work. Here's what I've got (basically the default template, modified with FlashVars):
<noscript>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
id="${application}" width="${width}" height="${height}"
codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
<param name="movie" value="${swf}.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="${bgcolor}" />
<param name="allowScriptAccess" value="sameDomain" />
<param name="flashVars" value="userID=foo&assignmentID=1"/>
<embed src="${swf}.swf" quality="high" bgcolor="${bgcolor}"
width="${width}" height="${height}" name="${application}" align="middle"
play="true"
loop="false"
quality="high"
allowScriptAccess="sameDomain"
type="application/x-shockwave-flash"
pluginspage="http://www.adobe.com/go/getflashplayer"
flashVars="userID=foo&assignmentID=1">
</embed>
</object>
</noscript>
And here's the ActionScript (called after the app's creationComplete event is fired):
function initApp() : void
{
// default params
userID = Application.application.parameters.userID;
assignmentID = Application.application.parameters.assignmentID;
if (userID == null || assignmentID == null)
{
Alert.show("I didn't get any params!", "Error");
}
}
Anybody know what's going wrong? I've tried several permutations of this with no luck. (Firefox 3, OS-X, Flash Player 9 FWIW)
Thanks!
I think you want to be setting query params after the .swf stuff too. Try
<embed src="${swf}.swf?userID=foo" quality="high" bgcolor="${bgcolor}"
Try "FlashVars" instead of "flashVars".
Related
I am trying to validate my page as XHTML 1.0 Transitional (W3C).
And I have the following error:
element "embed" undefined
+
there is no attribute "src",
there is no attribute "quality",
there is no attribute "width"
there is no attribute "height",
there is no attribute "align",
there is no attribute "bgcolor",
there is no attribute "name"
please see the source code:
<embed src="<?php info(template_directory); ?>/images/top-flash.swf"
quality="high" bgcolor="#000099"
width="960" height="362"
name="flash" align="left"
allowScriptAccess="sameDomain"
allowFullScreen="false"
wmode="transparent"
type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com/go/getflashplayer"
vspace="0" hspace="0"
style="padding:0; margin:0;" />
Please help me to pass this validation.
As #MichaelWagner has stated, element is really "not defined in XHTML 1.0 Transitional standard".
However, another solution could be to not changing the doctype, but changing the embed to object.
Thus Your code for including a .swf file could look like this:
<object type="application/x-shockwave-flash" data="TEMPLATE_DIRECTORY/images/top-flash.swf" width="960" height="362" name="flash" align="left" style="padding:0; margin:0;">
<param name="movie" value="TEMPLATE_DIRECTORY/images/top-flash.swf" />
<param name="allowScriptAccess" value="sameDomain" />
<param name="allowfullscreen" value="false" />
<param name="bgcolor" value="#000099" />
<param name="quality" value="high" />
<param name="wmode" value="transparent" />
Get Adobe Flash Player
</object>
Results in:
This document was successfully checked as XHTML 1.0 Transitional!
The following transformations apply (from embed to object):
allowScriptAccess="sameDomain" > <param name="allowScriptAccess"
value="sameDomain" />
allowFullScreen="false" > <param name="allowfullscreen"
value="false" />
bgcolor="#000099" > <param name="bgcolor" value="#000099" />
quality="high" > <param name="quality" value="high" />
wmode="transparent" > <param name="wmode" value="transparent" />
pluginspage="http://www.macromedia.com/go/getflashplayer" > Get Adobe Flash Player
Don't forget to change TEMPLATE_DIRECTORY/images/top-flash.swf to the original <?php info(template_directory); ?>/images/top-flash.swf
The embed element is not defined in XHTML1.0 Transitional standard. You have to remove the element or change your doctype to pass the test.
Im trying to insert a flash video with controls in my website. I can see the video but not the controls with FLVPlayback. I put all my files at the same level of my page, so i shouldnt have a path error...
Heres my files:
Confr.flv
Confr.swf
MinimaFlatCustomColorPlayBackSeekCounterVolMute.swf (playerSkin)
My code:
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="667" height="410" id="Confr" align="middle">
<param name="movie" value="http://unikmedia.ca/ad/wp-content/themes/adapte/Confr.swf" />
<param name="quality" value="best" />
<param name="bgcolor" value="#ffffff" />
<param name="play" value="false" />
<param name="loop" value="false" />
<param name="wmode" value="window" />
<param name="scale" value="showall" />
<param name="menu" value="true" />
<param name="devicefont" value="false" />
<param name="salign" value="" />
<param name="allowScriptAccess" value="sameDomain" />
<!--[if !IE]>-->
<object type="application/x-shockwave-flash" data="http://unikmedia.ca/ad/wp-content/themes/adapte/Confr.swf" width="667" height="410">
<param name="movie" value="http://unikmedia.ca/ad/wp-content/themes/adapte/Confr.swf" />
<param name="quality" value="best" />
<param name="bgcolor" value="#ffffff" />
<param name="play" value="false" />
<param name="loop" value="false" />
<param name="wmode" value="window" />
<param name="scale" value="showall" />
<param name="menu" value="true" />
<param name="devicefont" value="false" />
<param name="salign" value="" />
<param name="allowScriptAccess" value="sameDomain" />
<!--<![endif]-->
<a href="http://www.adobe.com/go/getflash">
<img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />
</a>
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object>
If you look at this link, you can see the player :http://unikmedia.ca/ad/wp-content/themes/adapte/Confr.swf
But in the wordpress, no controls at all... : http://unikmedia.ca/ad/a-propos/
Please I need help !!!
I had the same problem, and I found the solution... change the "swf BASE directory" in your embeded swf object. With this parameter pointing to your swf directory, the FLVPlayBack will be able to find the control skin swf.
Here's a sample:
<script type="text/javascript">
var flashvars = {};
var params = {"base": "../project/subfolder/"};
var attributes = {id: "Main", name: "Main"};
swfobject.embedSWF("MainLoader.swf", "myAlternativeContent", "920", "550", "10.0.0", "expressInstall.swf", flashvars, params, attributes);
</script>
Your file MinimaFlatCustomColorPlayBackSeekCounterVolMute.swf get an 404 error.
Try to find the script who call this file and change it.
But i suggest you to convert the .swf movie to an .mp4 and use jwplayer if its possible.
You can also try to create an 'a-propos' folder at the root of the site, like 'wp-content' folder, and put your 'MinimaFlatCustomColorPlayBackSeekCounterVolMute.swf' file in it
I was having the same issue, in my local workspace I could see it, but on the WP live site I couldn't. In my case I solved it by changing the permissions of the skin swf, try changing the chmod to 777 (of just skin swf file) to see if that's the issue.
I am using the following code but it does not work:
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="540" height="400" hspace="10">
<param name=movie value="http://servername/foldername/file.swf">
<param name=quality value=high><param name="LOOP" value="false">
<embed src="C:\Users\SAINI\Desktop\online\spn_20Dec\vp\images\abc.swf"
width="540" height="400" hspace="10" loop="false"
quality=high
pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"
type="application/x-shockwave-flash">
</embed>
</object>
How can I do that?
Internet Explorer, Google Chrome, Apple safari, Mozila Firefox and ...
you need a code which work in all of them and there it is:
<object width="900" height="400" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" id="myMovieName" >
<param name="src" value="YOUR MOVIE ADDRESS HERE.swf" />
<param name="quality" value="autohigh" />
<param name="bgcolor" value="black" />
<param name="autostart" value="true" />
<param name="FlashVars" value="init=yes&check=true" />
<param src="flash/movie.swf" autostart="true" flashvars="init=yes&check=true"
quality="autohigh" bgcolor="#000000" name="myMovieName"/>
</object>
All you need to do is:
copy and paste this code into your project,
change the address to your clip address,
change the dimensions of clip (in first line)
Enjoy it!
I've tried your code and it works with me without any alteration except the file and its location. I placed the file inside the root of my website. Sadly it doesn't work when I place another location. I don't know the reason yet
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="540" height="400" hspace="10">
<param name=movie value="http://servername/foldername/file.swf">
<param name=quality value=high><param name="LOOP" value="false">
<embed src="xx.swf" width="540" height="400" hspace="10" loop="false" quality=high pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash">
</embed> </object>
i created a small menu in flash that i want to embed into my website. The problem is it works in firefox but not in IE.
Could you help me please i am completely new to Flash
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="540" height="50">
<param name="main" value="/Flash/main.swf" />
<param name="play" value="true"/>
<param name="loop" value="true"/>
<param name="scale" value="showall"/>
<param name="wmode" value="window"/>
<param name="menu" value="true"/>
<param name="allowFullScreen" value="false"/>
<param name="allowScriptAccess" value="sameDomain"/>
<param name="quality" value="high" />
<embed height="50" width="540"
align="middle"
type="application/x-shockwave-flash"
salign=""
allowscriptaccess="sameDomain"
allowfullscreen="false"
menu="true"
name="main"
bgcolor="#ffffff"
devicefont="false"
wmode="window"
scale="showall"
loop="true"
play="true"
pluginspage="http://www.adobe.com/go/getflashplayer" quality="high" src="/Flash/main.swf"></embed>
</object>
I can't see what's wrong with your code.
Anyway I strongly suggest you use the swfobject script to embed your flash objects. This will solve the issue that flash objects have to be clicked on in IE before they are played.
Please pardon the dumb newbie question; I've only been programming Javascript for about 24 hours... :)
I have managed (with some outside help) to embed a shockwave flash object into my page - specifically MultiPowUpload 2.1. It's appearing nicely on the page and seems to be functioning correctly; we can take that part as read.
Now I'm trying to do some more advanced stuff in JavaScript - I have a button, and in the onClick() code I have the following:
var swf = document.getElementById("FlashFilesUpload1");
var itemsCount = swf.filesCount;
alert("items: "+itemsCount);
But the alert statement tells me "items: undefined". It does the same if I set itemsCount to swf.nonExistentProperty - everything is "undefined". But from what I read in the documentation, there definitely is a filesCount property. I tried accessing all the other properties and methods of this swf object, and none of them work, except for toString(), which returns "HTMLObjectElement".
I am obviously addressing this object incorrectly - but what am I doing wrong?
Clarification
In response to #brianpeiris: I am doing this quite differently from the page at the link you suggested. I didn't do this with any great knowledge, I'm just really acting like a monkey, trying to copy other people's code that works, then tweak it so it does what I want... so don't assume I know anything, however obvious - remember, I've only been doing JavaScript for about a day now!
So here's the code for the control itself:
<object id="FlashFilesUpload1" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0"
classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" viewastext>
<!-- Replace symbols " with the " at all parameters values and
symbols "&" with the "%26" at URL values or & at other values!
The same parameters values should be set for EMBED object below. -->
<param name="FlashVars" value="uploadButtonVisible=false&uploadUrl=../ReceiveBulkCases.aspx" />
<param name="BGColor" value="#F8F6E6" />
<param name="Movie" value="ClientSideControls/ElementITMultiPowUpload2.1.swf" />
<param name="Src" value="ClientSideControls/ElementITMultiPowUpload2.1.swf" />
<param name="WMode" value="Window" />
<param name="Play" value="-1" />
<param name="Loop" value="-1" />
<param name="Quality" value="High" />
<param name="SAlign" value="" />
<param name="Menu" value="-1" />
<param name="Base" value="" />
<param name="AllowScriptAccess" value="always" />
<param name="Scale" value="ShowAll" />
<param name="DeviceFont" value="0" />
<param name="EmbedMovie" value="0" />
<param name="SWRemote" value="" />
<param name="MovieData" value="" />
<param name="SeamlessTabbing" value="1" />
<param name="Profile" value="0" />
<param name="ProfileAddress" value="" />
<param name="ProfilePort" value="0" />
<!-- Embed for Netscape,Mozilla/FireFox browsers support. Flashvars parameters are the same.-->
<!-- Replace symbols " with the " at all parameters values and symbols "&" with the "%26" at URL values or & at other values! -->
<embed bgcolor="#F8F6E6" id="EmbedFlashFilesUpload" src="ClientSideControls/ElementITMultiPowUpload2.1.swf"
quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"
type="application/x-shockwave-flash" width="450" height="350" flashvars="uploadButtonVisible=false&uploadUrl=../ReceiveBulkCases.aspx">
</embed>
</object>
As you see it's embedded in the HTML as an object, unlike the reference you gave, where they do some other trick using script to get it onto the page.
BTW, when I tried it their way (not very hard, I grant you), I didn't manage to get the control even to appear on my page!
Thanks for your help... much appreciated
Edit: I think I finally figured it out! You simply have set the useExternalInterfaces to Yes.
So in your code you would change
<param
name="FlashVars"
value="uploadButtonVisible=false&uploadUrl=../ReceiveBulkCases.aspx" />
to
<param
name="FlashVars"
value="uploadButtonVisible=false&uploadUrl=../ReceiveBulkCases.aspx&useExternalInterface=Yes" />
and do the same for the <embed> tag.
If you visit the demo site and run the following code in Firebug it returns 0 before you select files and the correct count after you select files. Also, if you check the source, you'll see that the useExternalInterface option is set to Yes
alert(document.getElementById('MultiPowUpload').filesCount());
P.S. You should consider using the SWFObject script included with MultiPowUpload. It lets you set and change variables easily without having to worry about cross-browser issues and it also degrades gracefully for users without flash.
Further edit
To answer your comment: Yes, I've got filesCount working on my machine.
One thing I forgot to mention is that you might be trying to retrieve filesCount before the flash control is fully loaded.
The following is the code I'm using. I copied your code exactly and added the useExternalInterface setting as well as my own javascript.
Note that my javascript code repeatedly checks the filesCount every 500 milliseconds using the setInterval function.
<object id="FlashFilesUpload1" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0"
classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" viewastext>
<!-- Replace symbols " with the " at all parameters values and
symbols "&" with the "%26" at URL values or & at other values!
The same parameters values should be set for EMBED object below. -->
<param name="FlashVars" value="uploadButtonVisible=false&uploadUrl=../ReceiveBulkCases.aspx&useExternalInterface=Yes" />
<param name="BGColor" value="#F8F6E6" />
<param name="Movie" value="ClientSideControls/ElementITMultiPowUpload2.1.swf" />
<param name="Src" value="ClientSideControls/ElementITMultiPowUpload2.1.swf" />
<param name="WMode" value="Window" />
<param name="Play" value="-1" />
<param name="Loop" value="-1" />
<param name="Quality" value="High" />
<param name="SAlign" value="" />
<param name="Menu" value="-1" />
<param name="Base" value="" />
<param name="AllowScriptAccess" value="always" />
<param name="Scale" value="ShowAll" />
<param name="DeviceFont" value="0" />
<param name="EmbedMovie" value="0" />
<param name="SWRemote" value="" />
<param name="MovieData" value="" />
<param name="SeamlessTabbing" value="1" />
<param name="Profile" value="0" />
<param name="ProfileAddress" value="" />
<param name="ProfilePort" value="0" />
<!-- Embed for Netscape,Mozilla/FireFox browsers support. Flashvars parameters are the same.-->
<!-- Replace symbols " with the " at all parameters values and symbols "&" with the "%26" at URL values or & at other values! -->
<embed bgcolor="#F8F6E6" id="EmbedFlashFilesUpload" src="ClientSideControls/ElementITMultiPowUpload2.1.swf"
quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"
type="application/x-shockwave-flash" width="450" height="350" flashvars="uploadButtonVisible=false&uploadUrl=../ReceiveBulkCases.aspx&useExternalInterface=Yes">
</embed>
</object>
<script>
function updateMessage() {
var message = (new Date()).toLocaleTimeString() + ': ';
try {
var objectElement = document.getElementsByTagName('object')[0];
var embedElement = document.getElementsByTagName('embed')[0];
if (objectElement.filesCount) {
message += 'We are in IE ' + objectElement.filesCount();
}
else if (embedElement.filesCount) {
message += 'We are in Firefox ' + embedElement.filesCount();
}
else {
message += "The flash object is not loaded or useExternalInterface is not set to 'Yes'";
}
}
catch (exp) {
message += 'An error occurred';
}
document.getElementById('message').innerHTML = message;
}
// Update the message every 500 milliseconds
setInterval(updateMessage, 500);
</script>