Flash CS5 AS3无法获取Flashvars

时间:2012-04-09 07:32:21

标签: actionscript-3 flash flash-cs5 flashvars

我是AS3的新手,我发现自己需要扩展fla。这是由第三方写的。 我的目标是访问flashvars,但是因为我的生活无法让它工作......已经花了好几天学习..

我正在使用的fla是时间轴上的代码,有2帧。 movieclip运行到第2帧和停止。

第2帧是我需要使用flashvar的地方。

我已经构建了一个简单的示例,它将在第二帧上填充一个工作正常的文本框。

第1帧

var my_var:String = new String();
my_var = root.loaderInfo.parameters.uploadId;

第2帧

my_txt.text = my_var;
stop();

然而,当我在第三方fla上使用相同的方法时,我得到NULL输出。我也没有使用任何TLF文本(我认为)。

我不明白为什么它在一个案例中起作用而在另一个案例中起作用。我认为这可能与周围的代码冲突有关,但我不太了解AS来追踪它。任何有关这方面的帮助将不胜感激。

第1帧

import net.bizmodules.uvg.loading;

stop();

stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
stage.showDefaultContextMenu = false;
stage.quality = StageQuality.BEST;

function RandomValue()
{
    var d = new Date();
    return String(d.getDate()) + String(d.getHours()) + String(d.getMinutes()) + String(d.getSeconds());
}
var my_var:String;
my_var = root.loaderInfo.parameters.uploadId;
var userId;
var albums:Object;
var resource:Object;
var strUploadPage:String;
if (root.loaderInfo.parameters.uploadPage != undefined)
    strUploadPage = root.loaderInfo.parameters.uploadPage;
else
    strUploadPage = "http://localhost/dnn450/desktopmodules/ultramediagallery/flashuploadpage.aspx?PortalId=0&ModuleId=455";

if (strUploadPage.indexOf("?") > 0)
    strUploadPage += "&";
else
    strUploadPage += "?";

strUploadPage += "action=loadAlbums&seed=" + RandomValue();
trace(strUploadPage);

var myLoading:MovieClip = new loading();
myLoading.x = (stage.stageWidth - myLoading.width) / 2;
myLoading.y = (stage.stageHeight - myLoading.height) / 2;
addChild(myLoading);

var myRequest:URLRequest = new URLRequest(strUploadPage); 
var myLoader:URLLoader = new URLLoader(myRequest); 
myLoader.addEventListener(Event.COMPLETE, xmlLoaded); 

function xmlLoaded(evtObj:Event) 
{ 
    myLoader.removeEventListener(Event.COMPLETE, xmlLoaded);
    try
    {

        var xDoc:XMLDocument = new XMLDocument();
        xDoc.ignoreWhite = true;
        var xml:XML = XML(myLoader.data);
        xDoc.parseXML(xml.toXMLString());
        userId=xDoc.firstChild.attributes.userId;

        if (userId < 0)
        {
            removeChild(myLoading);
            txtError.text = "Please ensure you are logged in";
            return;
        }

        if(xDoc.firstChild.childNodes.length > 0)
        {
            albums = xDoc.firstChild.childNodes[0].childNodes;
            resource = xDoc.firstChild.childNodes[1].attributes;
        }
        else
        {
            removeChild(myLoading);
            txtError.text = xDoc.firstChild.attributes.error;
            return;
        }
        play();
    }
    catch(e:Error)
    {
        removeChild(myLoading);
        txtError.text = e + "\n\nPlease check your Event Viewer to find out detailed error message and contact service@bizmodules.net";
    }
}

第2帧

import net.bizmodules.upg.Alert;

stop();
removeChild(myLoading);

initialize();

function initialize()
{
    Alert.init(stage);

    upload.addVar("userId",userId);


    lstAlbums.dropdown.rowHeight = 24; 

    loadAlbums(0, albums);

    var my_so:SharedObject = SharedObject.getLocal("UPGUpload");
    var lastAlbum = my_so.data.lastAlbum * 1;
    var foundLastAlbum = false;
    if (lastAlbum > 0)
    {
        for (var i:int = 0; i< lstAlbums.length; i++)
        {
            if (lstAlbums.getItemAt(i).data == lastAlbum)
            {
                trace("find previous album");
                foundLastAlbum = true;
                lstAlbums.selectedIndex = i;
                break;
            }
        }
    }

    if (!foundLastAlbum)
    {
        lstAlbums.selectedIndex = lstAlbums.length - 1;
    }
    albums_change(null);

    lstAlbums.addEventListener("change", albums_change);

    lstAlbums.setStyle("backgroundColor", 0x504C4B);
    lstAlbums.dropdown.setStyle("backgroundColor", 0x504C4B);
    lstAlbums.setStyle("themeColor", 0x1F90AE);
    lstAlbums.setStyle("color", 0xC4C0BF); 
    lstAlbums.setStyle("textSelectedColor", 0xC4C0BF); 
    lstAlbums.setStyle("textRollOverColor", 0xC4C0BF); 
    lstAlbums.setStyle("alternatingRowColors", [0x504C4B, 0x504C4B]);
    lstAlbums.setStyle("borderStyle", 'none'); 

}

my_txt.text = "hello" + " " + my_var;


function loadAlbums(level:int, xml:Object)
{

    var prefix = "                                                     ".substring(0, level * 4);;

    for (var i:int = 0;i<xml.length;i++)
    {
        var itemValue = xml[i].attributes.itemid;
        if (xml[i].childNodes.length > 0)
            itemValue *= -1;

        lstAlbums.addItem({data: itemValue, label: prefix + xml[i].attributes.name});
        if (xml[i].childNodes.length > 0)
        {
            loadAlbums(level + 1, xml[i].childNodes);
        }
    }
}

function albums_change(e)
{   
    var albumId = lstAlbums.getItemAt(lstAlbums.selectedIndex).data;
    upload.set_albumId(albumId);
    if (albumId > 0)
    {
        var my_so:SharedObject = SharedObject.getLocal("UPGUpload");
        my_so.data.lastAlbum = albumId;
    }
    else
    {       
        Alert.show("The album you choosed is invalid", null, 0xEAEAEA, 0x000000);
    }
}

1 个答案:

答案 0 :(得分:0)

private var flashVarObj:Object = new Object;
flashVarObj=LoaderInfo(this.loaderInfo).parameters;
var my_var:String = new String();
my_var = flashVarObj.uploadIdd;