Wie pass Object-tag PARAM-value in Flash?
Hey alle, heute werde ich versuchen, einen link zu einer XML-Datei übergeben, von der Object-Embed-code in mein Flash-Film. (Nicht mit SWFobject). Ich habe 1 swf-Datei, die sollte in der Lage sein, um die Verbindung zu 3 unterschiedliche XML-Dateien.
Versuch 1
Unten ist der HTML-code (ich versuche theXML Weg):
<div class="left">
<h2>300 x 353 Green Accent Color</h2>
<script type="text/javascript">
AC_FL_RunContent( 'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0','width','300','height','353','src','TEN','quality','high','pluginspage','http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash','movie','TEN' ); //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,28,0" width="300" height="353">
<param name="movie" value="player.swf" />
<param name="quality" value="high" />
<param name="XML" value="client_user.xml" />
<embed src="T.swf" allowscriptaccess="always" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="300" height="353"></embed>
</object></noscript>
</div>
Dokument-Klasse
private var theXML:String = root.loaderInfo.parameters.xmlPath;
public function TEN():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
xmlLoader.addEventListener(Event.COMPLETE, xmlCompleteHandler);
xmlLoader.load(new URLRequest(root.loaderInfo.parameters.xmlPath));
loader = new BulkLoader("bulky");
loader.logLevel = BulkLoader.LOG_INFO;
loader.addEventListener(BulkLoader.COMPLETE, onBulkLoadComplete);
loader.addEventListener(BulkLoader.PROGRESS, onBulkLoadProgress);
//loader.add("client.xml",{id:"xmldata"}); //<- for TESTING
//loader.add(theXML+".xml",{id:"xmldata"}); //<- for LIVE
loader.add(xmlPath+".xml",{id:"xmldata"}); //<- for LIVE
loader.start();
}
Versuch 2
HTML mit verschiedenen PARAM übergeben syntax:
<div class="right">
<h2>520 x 477 Blue Accent Color</h2>
<script type="text/javascript">
AC_FL_RunContent( 'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0','width','300','height','353','src','TEN','quality','high','pluginspage','http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash','movie','TEN' ); //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,28,0" width="300" height="353">
<param name="movie" value="T.swf?xmlPath=0" />
<param name="quality" value="high" />
<param name="xmlPath" value="520.xml" />
<embed src="T.swf" allowscriptaccess="always" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="300" height="353"></embed>
</object></noscript>
</div>
Versuch 3
Flash-Code Aktualisiert:
private var theXML:String = "";
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
theXML = stage.loaderInfo.parameters.xmlPath;
loader = new BulkLoader("bulky");
loader.logLevel = BulkLoader.LOG_INFO;
loader.addEventListener(BulkLoader.COMPLETE, onBulkLoadComplete);
loader.addEventListener(BulkLoader.PROGRESS, onBulkLoadProgress);
//loader.add("client_user.xml",{id:"xmldata"}); //<- for TESTING
loader.add(theXML,{id:"xmldata"}); //<- for LIVE
//loader.add(theXML+".xml",{id:"xmldata"}); //<- for LIVE
loader.start();
}
Aktualisierte HTML-code:
<div class="right">
<h2>520 x 477 Blue Accent Color</h2>
<script type="text/javascript">
AC_FL_RunContent( 'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0','width','300','height','353','src','TEN','quality','high','pluginspage','http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash','movie','T' ); //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,28,0" width="300" height="353">
<param name="movie" value="T.swf?xmlPath=0.xml" />
<param name="quality" value="high" />
<param name="xmlPath" value="520.xml" />
<embed src="T.swf?xmlPath=520.xml" allowscriptaccess="always" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="300" height="353"></embed>
</object></noscript>
</div>
Jetzt ist es nicht das laden der XML-Datei aus dem param 🙁
InformationsquelleAutor Leon Gaban | 2010-02-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Blick auf FlashVars--dies ist die standard-Art der übergabe von Variablen durch den object-tags für die SWF.
Mithilfe von FlashVars diese Weise, oder Einstellung der query Parameter in der SWF-URL (
TEN.SWF?theXML=client_user.xml
), wird füllen Sie Ihre loaderInfo.Parameter Feld.Bin ich auf Flex (wo die FlashVars gespeichert sind, in
application.parameters
, aber in AS3, ich denke, dass Sie verwenden würden, dieloaderInfo
:Michael hat Recht - loaderInfo.Parameter ist ein Objekt, dessen Eigenschaften und Werte, spiegeln die flashvars - so loaderInfo.Parameter.theXML zurückkehren würde 'client_user.xml'.
JA! 😀 Endlich OMG thx 🙂 ich bin speichern Sie diese HTML-Datei
InformationsquelleAutor Michael Brewer-Davis
Yep, nur mit swfobject!
Auf html -
Auf Flash
InformationsquelleAutor Eder Lima