2012-04-09 4 views
0

저는 AS3에 처음 접했고 FLA를 확장해야한다고 생각합니다. 그것은 제 3 자에 의해 작성되었습니다. 목표는 플래시 바를 액세스하는 것입니다. 그러나 저의 삶은 작동하지 않습니다 ... 일 학습을위한 시간이었습니다.Flash CS5 AS3 Flashvars를 가져올 수 없습니다.

fla는 2 프레임의 타임 라인 코드입니다. 동영상 클립이 프레임 2로 이동하여 멈 춥니 다.

프레임 2에서 나는 flashvar를 사용해야합니다.

잘 작동하는 프레임 2에 텍스트 상자를 채울 간단한 예제를 만들었습니다. 내 제 3 자 FLA에 동일한 방법을 사용하는 경우

프레임 1

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

프레임이

그러나 나는 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 [email protected]"; 
    } 
} 

프레임 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); 
    } 
} 

답변

0
private var flashVarObj:Object = new Object; 
flashVarObj=LoaderInfo(this.loaderInfo).parameters; 
var my_var:String = new String(); 
my_var = flashVarObj.uploadIdd; 
관련 문제