-1
我完全在Flex編程中更新鮮, 我有一個FileUploadPanel.mxml,其中包含上傳,刪除和查看一個文件的功能..現在我需要修改應用程序以適應多個附件設施,所以我創建了另一個面板,即MultiFileUpload.mxml,它具有以對象列表的形式獲取所有附件的功能,並且對於每個對象ID,我需要調用以前的文件上載面板,每一件事情是優良的工作,但是當我訪問FileUpload.mxml的按鈕和標籤它拋出錯誤:如何從另一個mxml文件訪問一個mxml文件的按鈕和標籤
1009- cannot access property and method of null object reference.
code FileUploadPanel.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="492" height="46" >
<mx:Label x="0" y="4" text="File Attachment:"/>
<mx:Button x="93.5" y="2" label="Browse" id="btnBrowseView" click="__onBrowse();" enabled="true" width="67"/>
<mx:Text x="264.5" y="4" width="100%" id="lbUploadFile" height="18 " />
<mx:Button x="165" y="2" label="Upload" id="btnUpload" enabled="true" click="reserveAttachment();" width="67"/>
<mx:Text x="10" y="25" width="100%" height="18" id="__status__" fontWeight="bold" color="#023AF1"/>
<mx:Script>
<![CDATA[
public function SetAttachmentID(anAttachmentID: Number): void
{
this.AttachmentID = anAttachmentID;
lbUploadFile.text = ""; //here i am getting error
__status__.text = "";
if (AttachmentID != -1)
{
m_data = new DocumentsAdt();
m_data.ConnectionIndex = ConnectionIndex;
m_data.OnLoadData = this.OnDoxLoaded;
m_data.LoadFromWebService(AttachmentID);
btnBrowseView.label = "View";
btnUpload.label = "Delete";
btnUpload.enabled = true;
btnUpload.visible = true;
}
else
{
btnBrowseView.label = "Browse";
btnUpload.visible = false;
btnUpload.label = "Upload";
btnUpload.enabled = false;
Init();
}
}
</mx:Script>
</mx:Canvas>
代碼MuliFileUpload.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300" xmlns:BoycePanels="BoycePanels.*" xmlns:ns1="com.flextoolbox.controls.*" xmlns:ns2="com.adobe.flex.extras.controls.*" xmlns:ns3="BoycePanels.*">
<mx:Script>
<![CDATA[
import Adt.Attachments.DocumentsAdt;
import com.boycepensions.DocumentsService.DocumentsService;
import com.boycepensions.DocumentsService.GetDocumentsRecordResultEvent;
import mx.collections.ArrayCollection;
private var m_data: DocumentsAdt = null;
import mx.rpc.events.FaultEvent;
import BoycePanels.FileUploadPanel;
import mx.controls.Alert;
public var ConnectionIndex: int = new int(0);
public var AttachmentID: Number = new Number(-1);
public var acDocList:ArrayCollection=null;
public function Init():void
{
getDocs_Test();
}
public function getDocs_Test():void
{
blah..blah..blah..
}
public function OnGetDocumentsRecord(event:GetDocumentsRecordResultEvent): void
{
var acDocList:ArrayCollection=new ArrayCollection();
var m_data:DocumentsAdt=new DocumentsAdt();
if (!CheckResult(event.result))
return;
else
{
acDocList=m_data.LoadDocumentsFromXML(event.result);
for each(var obj:DocumentsAdt in acDocList)
{
var pnl:FileUploadPanel=new FileUploadPanel();
//pnl.OnReserveAttachmentDone=OnReserveAttachment;
pnl.Init();
pnl.SetAttachmentID(obj.Document_ID); //here it is throwing error
}
}
}
請建議,我已經花了幾天時間就可以了..
謝謝潘!有效!! – Asmi 2014-09-23 10:45:23