我有一個Flash Builder 4項目,它連接到Flash Professional CS5 FLA。 我不使用MXML,並且所有代碼都直接在Flash Builder中處理。 (Flash本身僅用於圖書館,它更易於我們的藝術家使用)Flash Builder 4 + Flash Professional + FlashVars!= WORKING
一切都一帆風順,一切都從動態生成的XML從SWF嵌入到的網站運行。但到目前爲止,我已經在actionscript中對XML路徑進行了硬編碼。我只希望不這樣做。
我已經遵循了關於將FlashVars轉換爲FB4/As3的最少45個教程,並且很簡單,似乎沒有任何工作。 老學校<嵌入>方法,使用<對象>方法,甚至使用swfObject方法,只是我似乎無法訪問這些flashvar屬性。
這裏就是我現在有現在的HTML:
<script>
var flashvars = {
xml: "/mapsystem/xml"
}; // yes that is definitely the correct path, its the same value as when it was hardcoded
$(function() {
swfobject.embedSWF("/flash/map.swf", "map", "960", "885", "10.0.0", "expressInstall.swf", flashvars);
});
</script>
<div id="map">
swfObject Aint Working
</div>
繼承人的動作(這是我的文檔類,第一件事)
package
{
import flash.display.LoaderInfo;
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.Event;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import src.GlobalStage;
import src.Map;
import src.Styles;
public class map extends GlobalStage
{
public var xmlDoc = "map.xml";
public function map()
{
var test:TextField = new TextField();
test.x = 50;
test.y = 50;
test.autoSize = TextFieldAutoSize.LEFT;
test.text = "XML Doc: ";
this.addChild(test);
var test2:TextField = new TextField();
test2.x = 50;
test2.y = 80;
test2.multiline = true;
test2.border = true;
test2.autoSize = TextFieldAutoSize.LEFT;
test2.text = "Parameters: \n";
test2.appendText("Total Parameters: ");
this.addChild(test2);
var _params:Object;
if (this.loaderInfo.parameters.length != null) {
_params = this.loaderInfo.parameters;
} else {
// run alt code to init
}
for(var pItem:String in _params) {
test2.appendText("Name: " + pItem + " :: " + _params[pItem] + "\n");
}
if(_params['xml'] != null) xmlDoc = _params['xml'];
test.appendText(xmlDoc);
var map:Map = new Map(xmlDoc);
現在,當我在我的本地運行此測試,沒有什麼按預期顯示,但當涉及到網站本身,通過傳遞的flashvar,xmlDoc保持「map.xml」,我的櫃檯告訴我有0個參數,當然沒有任何顯示我的參數列表。
我花了8個小時試圖讓這個工作,坦率地說,我失去了頭髮,睡在這。
GlobalStage是你的主要文檔類嗎?嘗試使用'root.loaderInfo.parameters'而不是'this'。 – weltraumpirat