Solved

AS3/ XML: Multilingual Flash piece?

Posted on 2009-04-08
19
1,657 Views
Last Modified: 2013-11-11
I have a flash piece with dynamic text fields all populated with xml and loaded in using:
import flash.net.URLLoader;
import flash.net.URLRequest;

Now the fun part.  I will have several (over 20) languages to be populated using different xml, structured as such:

...how do I go about loading in the corresponding xml in the Flash piece at run time?  In other words, French site: load in French xml...  German site: load in German xml...  English site: load in English xml...  and so on...  All this without having a separate Flash file for each language....

Any and all help as always in greatly appreciated, so Thanks!
AS3-------------

     

   var xmlLoader:URLLoader = new URLLoader();

	var xmlData:XML = new XML();
 

	xmlLoader.addEventListener(Event.COMPLETE, LoadXML);
 

	xmlLoader.load(new URLRequest("CalloutContent.xml"));
 

	function LoadXML(e:Event):void {

		trace("LoadXML");

		xmlData = new XML(e.target.data);

		ParseContent(xmlData);

	}
 

	function ParseContent(contentInput:XML):void {

		trace("ParseContent this is the first header");

		toolHeader.htmlText = contentInput.callout.tool;

	}
 
 

XML-------------
 

<?xml version="1.0" encoding="UTF-8"?>

<content>

  <!--begin-->

  

  <dropPlate>

  	<!-------BEGINING DROP-DOWN PLATE-------------------------------------------->

	<instructions>Select start, then click and hold to break through the wall.</instructions>

	

	<!-------START BUTTON ON FIRST DROP-DOWN PLATE---->

	<starter>START</starter>

  

  	<!-------FINAL DROP-DOWN PLATE----------------------------------------------->

	<!-------FINAL PLATE COPY------------------------->

    <finisher>GET READY.  THE ALL-NEW HILTI ONLINE.  COMING SOON!</finisher>

	

	<!-------BUTTONS------------------------------------------------------------->

	<!-------START BUTTON ON FIRST DROP-DOWN PLATE---->

	<starter>START</starter>

	

	

	<!-------SKIP BUTTON ON BOTTOM PANEL-------------->

	<skipper>STOP / END</skipper>

	

	<!-------RESET WALL BUTTON ON BOTTOM PANEL-------->

	<reseter>START  / RESET</reseter>

	

	

  <!--end-->

  </dropPlate>

</content>

Open in new window

0
Comment
Question by:cubical38
  • 11
  • 8
19 Comments
 
LVL 5

Expert Comment

by:john_hollings
ID: 24098733
What about having a intro page with a combo box which would list all of the languages pulled in from another XML file 'languages.xml'  In this xml file you can then have an attributed of each language like URL which would have the path to the relevant xml file.

Or

If you have different url's for each language site then you could potentially send a varaible to flash using javascript.  Based on the variable will depend on what xml file it used.
0
 

Author Comment

by:cubical38
ID: 24098791
I will have to look into it but Im not sure that having the option to choose the language manually is an option.  Do you mean based on the different site url I could pass in "if French url use French xml"  using JS?  Wouldnt that mean that each site would have a different JS call in the head?

Thanks for the reply
0
 
LVL 5

Expert Comment

by:john_hollings
ID: 24099784
I believe you can have more than one url pointing to the same website, which mean you will just need a JavaScript function to send the current url string to flash.  The let Flash determine what xml language file to load based upon this load variable.
0
 

Author Comment

by:cubical38
ID: 24100049
Yea, there is a different url for each language so how would I setup the JS in the head?  Will it need to be different in each different url...?
0
 
LVL 5

Expert Comment

by:john_hollings
ID: 24100754
I believe something like this will work!

In your HEAD tags
<script type="text/javascript">
<!--
currentURLValue = location.href;
// -->
</script>

You can send variable to Flash using the SWFObject script or embed tags

<embed
  src="player.swf"
  width="300"
  height="300"
  allowscriptaccess="always"
  allowfullscreen="true"
  flashvars="currentURL=currentURLValue"
/>

Now you will need to have a capture this variable in Flash and determine which XML file you need to import.

Now the embed tags do encounter some issues so you can embed the flash movie using JavaScript using the SWFObject script by Geoff Stearns - http://blog.deconcept.com/swfobject/
0
 

Author Comment

by:cubical38
ID: 24100855
I understand the JS, but what do you mean by "have a capture this variable in Flash"?

If this is how I load in my xml:

How do I replace:

 xmlLoader.load(new URLRequest("CalloutContent.xml"));

with the variable?

Thanks for all the help BTW...
var xmlLoader:URLLoader = new URLLoader();

        var xmlData:XML = new XML();

 

        xmlLoader.addEventListener(Event.COMPLETE, LoadXML);

 

        xmlLoader.load(new URLRequest("CalloutContent.xml"));

 

        function LoadXML(e:Event):void {

                trace("LoadXML");

                xmlData = new XML(e.target.data);

                ParseContent(xmlData);

        }

 

        function ParseContent(contentInput:XML):void {

                trace("ParseContent this is the first header");

                toolHeader.htmlText = contentInput.callout.tool;

        }

Open in new window

0
 

Author Comment

by:cubical38
ID: 24101741
Okay let try this, here is the html: <param name="content" value="EN" /> (point of concentration)

"EN" being the value that will be changed to "FR", "PT" ect...  Now how do I reflect that within the AS3 listed above?

<script language="javascript">

	if (AC_FL_RunContent == 0) {

		alert("This page requires AC_RunActiveContent.js.");

	} else {

		AC_FL_RunContent(

			'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0',

			'width', '540',

			'height', '360',

			'src', 'Hilti360',

			'quality', 'high',

			'pluginspage', 'http://www.macromedia.com/go/getflashplayer',

			'align', 'middle',

			'play', 'true',

			'loop', 'true',

			'scale', 'showall',

			'wmode', 'window',

			'devicefont', 'false',

			'id', 'Hilti360',

			'bgcolor', '#ffffff',

			'name', 'Hilti360',

			'menu', 'true',

			'allowFullScreen', 'false',

			'allowScriptAccess','*',

			'movie', 'Hilti360',

			'salign', ''

			); //end AC code

	}

</script>

<noscript>
 

	<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="540" height="360" id="Hilti360" align="middle">
 

	<param name="allowScriptAccess" value="*" />

	<param name="allowFullScreen" value="false" />

	<param name="movie" value="Hilti360.swf" />

	<param name="quality" value="high" />

	<param name="bgcolor" value="#ffffff" />
 
 

	<param name="content" value="EN" />
 

	<embed src="Hilti360.swf" quality="high" bgcolor="#ffffff" width="540" height="360" name="Hilti360" 

		align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
 

	</object>
 

</noscript>

Open in new window

0
 
LVL 5

Expert Comment

by:john_hollings
ID: 24101834
OK, lets start again, slight change to the code - my fault.

In the body of your HTML page create the following, you might need to change the sizing and swf file name.  The FlashVars part basically passes the variable myVar which contains the currentURL.

<PARAM NAME=FlashVars VALUE="myVar=' + location.href +'">\n'+

<body>
<SCRIPT LANGUAGE="JavaScript">
<!--
document.write(
  '<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"\n'+  
  '  ID=FlashID WIDTH=550 HEIGHT=400>\n'+
  '  <PARAM NAME=movie VALUE="accessibilityButton.swf">\n'+
  '       <PARAM NAME="wmode" VALUE="opaque" />\n'+
  '  <PARAM NAME=FlashVars VALUE="myVar=' + location.href +'">\n'+
  '  <PARAM NAME=quality VALUE=medium>\n'+
  '  <PARAM NAME=bgcolor VALUE=#99CC33>\n'+
  '  <EMBED src="accessibilityButton.swf" FlashVars="myVar=' + location.href +'"\n'+
  '    bgcolor=#99CC33 WIDTH=550 HEIGHT=400 \n'+
  '    TYPE="application/x-shockwave-flash">\n'+
  '  </EMBED>\n'+
  '</OBJECT>\n');
//-->
</SCRIPT>
</body>

In your flash document on the root timeline, create your if statement to determine what xml file to pull in:
var xmlFile = "";

If(myVar == "http://www.frenchurl.fr) {
  xmlFile = "french.xml";
} else if(myVar == "http://www.englishurl.co.uk) {
 xmlFile = "english.xml";
} else if(and so on..) {
 xmlFile = "";
For the last file use
} else {
 xmlFile = "the last xml path";
}

To load the correct xml file in:
xmlLoader.load(new URLRequest(xmlFile));

This should work.  If you have any issues, can you send me your fla and xml file(s)?
0
 

Author Comment

by:cubical38
ID: 24108115
Awe I see what is going on here but this syntax (if else) throws errors.  Also myVar and xmlFile are not defined within the Flash file, did I miss something, how does the flash and html communicate?  

Thanks Again fo all your help, I am soooo close....
0
Highfive Gives IT Their Time Back

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 
LVL 5

Expert Comment

by:john_hollings
ID: 24108407
myVar is created within the object embed tag of your HTML file, using the <PARAM NAME=FlashVars VALUE="myVar=' + location.href +'">

location.href is a JavaScript function which determines the current url for example:

http://mysite.fr (FRENCH URL)
http://mysite.co.uk (ENGLISH URL)
etc..

Therefore myVar now carries this string over to Flash.  Within the Flash file the If else statement is saying if myVar == "http://mysite.fr" then store the path for the French language xml file in the xmlFile variable.

In your Xmlload statement 'xmlLoader.load(new URLRequest(xmlFile));' is saying get the path from the xmlFile variable.

I think you also need to declare the two variables which I did not mention so sorry for that.  To do this, at the top of your actionscript:

var myVar = "";
var xmlFile = "";

It might be easier if you can send me your fla and xml file so I can have a look at the actual code and debug it.
0
 

Author Comment

by:cubical38
ID: 24108635
It wont allow me to send my files...  I have instead posted all of the code from my fla, html and xml.  Another thing to consider the xml files are located in another file called content.
//AS3-----------------------------------------------------------------------------

stop();

import gs.*;

import fl.transitions.Tween;

import fl.transitions.easing.*;

import fl.transitions.TweenEvent;

import gs.utils.tween.*;

import gs.utils.*;

import flash.events.*;

import flash.geom.Point;
 

OverwriteManager.init();
 

OverwriteManager.mode = OverwriteManager.ALL;
 
 

//////////////////////////////////////////////////////////////SWF Begins

try {

	crosshair_mc.alpha = 0;

	crosshair2_mc.alpha = 0;

	crosshair3_mc.alpha = 0;

	crosshair4_mc.alpha = 0;

	crosshair5_mc.alpha = 0;

	crosshair6_mc.alpha = 0;
 

	calloutCopy_mc.alpha = 0;

	calloutCopy2_mc.alpha = 0;

	calloutCopy3_mc.alpha = 0;

	calloutCopy4_mc.alpha = 0;

	calloutCopy5_mc.alpha = 0;

	calloutCopy6_mc.alpha = 0;
 

	TweenGroup.allTo([crosshair_mc,crosshair2_mc,crosshair3_mc,crosshair4_mc,crosshair5_mc,crosshair6_mc], .5, {alpha:1, ease:Strong.easeInOut});
 

	//////////////////////////////////////////////////////////////XML Data
 

	var xmlLoader:URLLoader = new URLLoader();

	var xmlData:XML = new XML();
 

	xmlLoader.addEventListener(Event.COMPLETE, LoadXML);
 

	xmlLoader.load(new URLRequest("content/EN.xml"));
 

	function LoadXML(e:Event):void {

		trace("LoadXML");

		xmlData = new XML(e.target.data);

		ParseContent(xmlData);

	}
 

	function ParseContent(contentInput:XML):void {

		trace("ParseContent");

		txtBox_mc.buttonText.htmlText = contentInput.callout.button;

		txtBox2_mc.buttonText.htmlText = contentInput.callout.button2;

		txtBox3_mc.buttonText.htmlText = contentInput.callout.button3;

		txtBox_mc_btm.buttonText.htmlText = contentInput.callout.button4;

		txtBox5_mc.buttonText.htmlText = contentInput.callout.button5;

		txtBox6_mc.buttonText.htmlText = contentInput.callout.button6;
 

		calloutCopy_mc.Header.htmlText = contentInput.callout.heading;

		calloutCopy_mc.Copy.htmlText = contentInput.callout.texting;

		calloutCopy2_mc.Header.htmlText = contentInput.callout.heading2;

		calloutCopy2_mc.Copy.htmlText = contentInput.callout.texting2;

		calloutCopy3_mc.Header.htmlText = contentInput.callout.heading3;

		calloutCopy3_mc.Copy.htmlText = contentInput.callout.texting3;

		calloutCopy4_mc.Header.htmlText = contentInput.callout.heading4;

		calloutCopy4_mc.Copy.htmlText = contentInput.callout.texting4;

		calloutCopy5_mc.Header.htmlText = contentInput.callout.heading5;

		calloutCopy5_mc.Copy.htmlText = contentInput.callout.texting5;

		calloutCopy6_mc.Header.htmlText = contentInput.callout.heading6;

		calloutCopy6_mc.Copy.htmlText = contentInput.callout.texting6;
 
 
 

		trace("XML Output");

		trace("------------------------");

		trace(contentInput);
 

	}
 

<!--XML----------------------------------------------------------------------------------------------------------------->
 

<?xml version="1.0" encoding="UTF-8"?>

<content>

  <!--begin-->

  

  <callout>

  	

	

	<tool><![CDATA[<b>Hilti TE 1000-AVR</b>]]></tool>

	

	<!-------CALLOUT 1----------------------------------------------->

	<!-------HEADER---------------------->

	<heading><![CDATA[<b>Hilti Polygon Chisels</b>]]></heading>

    <!-------COPY------------------------>

	<texting><![CDATA[<ul><li>Unique self-sharpening polygon chisels.</li><li>Best system performance.</li><li>TE-S connection with easy click-chuck.</li></ul>]]>

</texting>

	<!-------BUTTON---------------------->

	<button><![CDATA[Hilti Polygon Chisels]]></button>

	

	

	<!-------CALLOUT 2----------------------------------------------->

	<!-------HEADER---------------------->

    <heading2><![CDATA[<b>Strong Brushless SR motor</b>]]></heading2>

	<!-------COPY------------------------>

	<texting2><![CDATA[<ul><li>Powerful 22 Joule Impact energy.</li><li>Best in class demolition performance.</li><li>Maintenance-free, without carbon brushes.</li><li>Longer service cycles and tool lifetime.</li></ul>]]></texting2>

	<!-------BUTTON---------------------->

	<button2><![CDATA[Strong Brushless SR motor]]></button2>

	

	<!-------CALLOUT 3----------------------------------------------->

	<!-------HEADER---------------------->

    <heading3><![CDATA[<b>3-Chamber sealing concept</b>]]></heading3>

	<!-------COPY------------------------>

	<texting3><![CDATA[<ul><li>Increased tool lifetime due to efficient dust protection in the tool gears.</li><li>Longer Service cycles to get more work done.</li></ul>]]></texting3>

	<!-------BUTTON---------------------->

	<button3><![CDATA[3-Chamber sealing concept]]></button3>

	

	<!-------CALLOUT 4----------------------------------------------->

	<!-------HEADER---------------------->

    <heading4><![CDATA[<b>Active Vibration Reduction</b>]]></heading4>

	<!-------COPY------------------------>

	<texting4><![CDATA[<ul><li>Sub-chassis AVR concept with lowest vibration level in its class.</li><li>Great working comfort, highest daily productivity and longest permissible switch-on times per day.</li></ul>]]></texting4>

	<!-------BUTTON---------------------->

	<button4><![CDATA[Active Vibration Reduction]]></button4>

	

	<!-------CALLOUT 5----------------------------------------------->

	<!-------HEADER---------------------->

    <heading5><![CDATA[<b>Power reduction button / Service LED</b>]]></heading5>

	<!-------COPY------------------------>

	<texting5><![CDATA[<ul><li>Theft Protection System (optional).</li><li>Service Indicator.</li><li>Power reduction to 70%.</li></ul>]]></texting5>

	<!-------BUTTON---------------------->

	<button5><![CDATA[Power reduction button / Service LED]]></button5>

	

	<!-------CALLOUT 6----------------------------------------------->

	<!-------HEADER---------------------->

    <heading6><![CDATA[<b>Tool design / handle concept</b>]]></heading6>

	<!-------COPY------------------------>

	<texting6><![CDATA[<ul><li>Optimum balance and ergonomics because of symmetrical tool design.</li><li>Soft padded main and side handle for additional working comfort.</li></ul>]]></texting6>

	<!-------BUTTON---------------------->

	<button6><![CDATA[Tool design / handle concept]]></button6>
 

	

	

  <!--end-->

  </callout>

</content>
 

<!--HTML----------------------------------------------------------------------------------------------------------------->
 

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Hilti360</title>
 

<script language="javascript">AC_FL_RunContent = 0;</script>

<script src="AC_RunActiveContent.js" language="javascript"></script>
 

</head>
 

<body style="background-color:#ffffff; margin: 0px; overflow: hidden;">
 

<!--url's used in the movie-->

<!--text used in the movie-->

<!-- saved from url=(0013)about:internet -->
 

<script language="javascript">

	if (AC_FL_RunContent == 0) {

		alert("This page requires AC_RunActiveContent.js.");

	} else {

		AC_FL_RunContent(

			'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0',

			'width', '540',

			'height', '360',

			'src', 'Hilti360',

			'quality', 'high',

			'pluginspage', 'http://www.macromedia.com/go/getflashplayer',

			'align', 'middle',

			'play', 'true',

			'loop', 'true',

			'scale', 'showall',

			'wmode', 'window',

			'devicefont', 'false',

			'id', 'Hilti360',

			'bgcolor', '#ffffff',

			'name', 'Hilti360',

			'menu', 'true',

			'allowFullScreen', 'false',

			'allowScriptAccess','*',

			'movie', 'Hilti360',

			'salign', ''

			); //end AC code

	}

</script>

<noscript>
 

	<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="540" height="360" id="Hilti360" align="middle">
 

	<param name="allowScriptAccess" value="*" />

	<param name="allowFullScreen" value="false" />

	<param name="movie" value="Hilti360.swf" />

	<param name="quality" value="high" />

	<param name="bgcolor" value="#ffffff" />
 
 

	<!--<param name="content" value="EN" /> -->

    <param name= FlashVars value="myVar=' + index-EN.html +'">\n'+

	

	<embed src="Hilti360.swf" quality="high" bgcolor="#ffffff" width="540" height="360" name="Hilti360" 

		align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
 

	</object>
 

</noscript>

</body>

</html>

Open in new window

0
 
LVL 5

Expert Comment

by:john_hollings
ID: 24108808
EE does not allow fla but you can bypass this by adding .txt to each file.  If you have multiple files and still ok to up load them leave an indicator in the file so I know what extension to make it e.g myfile1fla.txt, myfile2xml.txt etc.

Looking at the code I can't see any errors, I really need to debug it at runtime.
0
 

Author Comment

by:cubical38
ID: 24109039
okay I am not getting any errors in the syntax (lowercase if in the if else statement and ending " in the strings), now the only errors are the non-defined myVar and xmlFile.
Im not sure what

var myVar = "";
var xmlFile = "";

variable types should be...

I would send all of my files except there are several class files that make the piece run, so you would not be able to fully test it...

Thanks Again
0
 

Author Comment

by:cubical38
ID: 24110072
Okay here are my files, I hope you can open them and help me figure this out...  Do I need to embed my swf differently in the html?

Error #2044: Unhandled ioError:. text=Error #2032: Stream Error. URL:  are my errors now.  Which means I should be closer...

Thanks
Archive.zip
0
 

Author Comment

by:cubical38
ID: 24110099
Oh yea also all of the xml file are and will be located in a folder on the same level as the swf and html called content...

Thanks Again
0
 
LVL 5

Accepted Solution

by:
john_hollings earned 500 total points
ID: 24112610
Sorted, to cut a long story short, I was giving you AS2 code for getting the FlashVar into the swf.  However I have sorted the issue and believe it is working as it should now.

What have I do???

I have changed the embed code of your html page slightly, I hope this does cause any issues for you.  Now I have hard coded the url index-EN.html to show it working, feel free to change this to index-FR.html or index-PT.html to see the change in action.

var currenturl = 'index-EN.html';

I have also added some some to your FLA file.  The code below basically creates a couple of variables to store the variable name and value of the FlashVar in the HTML page.
var keyStr:String;
var myUrl:String;
var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters;
for (keyStr in paramObj) {
      myUrl = String(paramObj[keyStr]);
}

The following piece of code is the if, else statements to say is myUrl is equal to x, xmlFile variable store the langauge xml path x, else if it's equal to y, xmlFile varaible stores the language xml file y etc.
      var xmlFile = "";
      if(myUrl== "index-EN.html") {
            xmlFile = "content/EN.xml";
      } else if(myUrl == "index-FR.html") {
            xmlFile = "content/FR.xml";
      } else {
            xmlFile = "content/PT.xml";
      }

And lastly the following code, creates your xml loader and references the xmlFile varaible which inturn has the path name for the correct xml you want to show.  I have provided the html and fla files, take a look and run the html file on your test or localsever.
HiltiCalloutsfla.txt
index-ENhtml.txt
0
 

Author Comment

by:cubical38
ID: 24115946
Everything is working except that the only xml that is being pulled in is the final one listed, as in the else statement, regardless of which html I am opening it only parses the else and bypasses the if and all of the else if conditions.  Did I write something wrong?  

Thanks for all the help!  

var keyStr:String;

	var myUrl:String;

	var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters;

	for (keyStr in paramObj) {

		myUrl = String(paramObj[keyStr]);

	}

	var xmlFile = "index-EN.html";

	if (myUrl == "index-EN.html") {

		xmlFile = "content/EN.xml";

		trace("EN");

	} else if (myUrl == "index-FR.html") {

		xmlFile = "content/FR.xml";

		trace("FR");

	}

//this is the only xml that is being displayed regardless of html 

         else {

		xmlFile = "content/PT.xml";

		trace("PT");

	}

	var xmlLoader:URLLoader = new URLLoader();

	var xmlData:XML = new XML();
 

	xmlLoader.addEventListener(Event.COMPLETE, LoadXML);
 

	xmlLoader.load(new URLRequest(xmlFile));
 

	function LoadXML(e:Event):void {

		trace("LoadXML");

		xmlData = new XML(e.target.data);

		ParseContent(xmlData);

	}

Open in new window

0
 

Author Comment

by:cubical38
ID: 24117493
Is var currenturl = 'index-EN.html'; within the html script the only way that Flash sees the current url?  The if and else if statements are not being read.
0
 
LVL 5

Expert Comment

by:john_hollings
ID: 24119932
The currenturl variables is being set within the HTML page, if you uploaded these to a web server and got 20 different urls one for each langauge, and pointed them all to the index.html page, then instead of hard coding the variable like I have to you would put in, location.href, which would make it completely dymanic like you wanted.
0

Featured Post

What Security Threats Are You Missing?

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

Suggested Solutions

Introduction This article is primarily concerned with ActionScript 3 and generally specific to AVM2.  Most suggestions would apply to ActionScript 2 as well, and I've noted those tips that differ between AS2 and AS3. With the advent of ActionS…
In my long career of working as an actionscript developer, I had spent sleepless night often working hard to solve some small problems which actually took a lot of my development time; later found out the solutions to be a line or two. Here are s…
The goal of the tutorial is to teach the user how to select the video input device. Make sure you have an input device that in connected and work and recognized by Adobe Flash Media Live Encoder and select it in the “video input” menu.
The goal of the tutorial is to teach the user what frame rate is, how to control it and what effect it has on the video.

747 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now