2014-12-05 70 views
0

我正在使用適用於Android的AS3/AIR 3.2。 我在將我的可變數據傳遞給另一個框架時遇到了麻煩。我讀了一些論壇,但我只是新的,所以我沒有任何想法。 我有一個輸入文本和按鈕在我的框架1中,用戶將輸入一個名稱,然後輸入的數據將被保存。 (我使用了SharedObject),但輸入的所有數據將出現在第2幀。 雖然我的第2幀是一個動態文本,所有數據都將出現。 這是代碼爲我的幀1Flash AS3將我的var數據傳遞給另一個框架

import flash.net.SharedObject; 
var myName:String; 
myResult.text = ""; 
var mySO:SharedObject = SharedObject.getLocal("test"); 
if (mySO1.data.myName != null){ 
    myResult.text = mySO1.data.myName; 
} 
else { 
    myResult.text = "No Name"; 
} 

submit_btn.addEventListener(MouseEvent.CLICK, gotomyNextFrame); 
function gotomyNextFrame(event:MouseEvent):void 
{ 
    nextFrame(); 
    myName = myInputName.text; 
    trace(myName); 
    myResult.text = myName; 
    mySO.data.myResult = myInputName.text; 
    mySO.flush(); 
    trace(mySO.data.myResult); 
} 

錯誤:錯誤#1009:無法訪問空對象引用的屬性或方法。我認爲這是因爲我錯誤地將數據傳遞到框架中。 嘗試:我試圖顯示在同一幀的輸出,我沒有遇到任何錯誤。

+0

最有可能您的問題是,您試圖訪問對象(文本字段)只存在於框架2,從第1幀我說得對不對?如果您的文本字段不在第1幀上,並且實例名稱爲「myResult」,那麼代碼將拋出1009錯誤。 – BadFeelingAboutThis 2014-12-05 22:07:17

+0

看到這個:http://stackoverflow.com/a/27024406/1457439 – BadFeelingAboutThis 2014-12-05 22:27:56

+0

@LDMS是LDMS,我故意這樣做,因爲我想我的第2幀訪問來自第1幀的數據。我想顯示輸入的數據幀1到幀2. – 2014-12-05 23:41:13

回答

1

SharedObject變種是mySO,而不是mySO1,以及幀之間共享數據,可以使用這樣一個變量:

幀1:

... 

var shared_data:String = txt_input.text 

nextFrame() 

... 

框架2:

// get shared_data and use it as you like 

another_input.text = shared_data 

shared_object.data.current_name = shared_data 

... 

編輯:

/* frame 01 */ 

// shared_data should be declared here to be a global var not inside a function 
var shared_data:String  

submit_btn.addEventListener(MouseEvent.CLICK, gotomyNextFrame) 
function gotomyNextFrame(event:MouseEvent):void { 

    // here you should just assign a value to shared_data var 
    shared_data = yourName.text  

    nextFrame() 

} 

/* frame 2 */ 

stop() 

import flash.net.SharedObject 

// if you redefine shared_data var here you will lost it's value and you will get a null value 
// var shared_data:String  

var mySO:SharedObject = SharedObject.getLocal("test1") 

myResult.text = shared_data 

// here your SharedObject object is named mySO and not SharedObject 
//SharedObject.data.mySO = shared_data 

mySO.data.yourName = shared_data 
+0

好的,謝謝我以某種方式得到它,但這個怎麼樣? 「錯誤1119:訪問可能未定義的屬性」?我從其他論壇讀了一些,但我沒有創建任何課程,這是否意味着我需要創建一個課程? – 2014-12-05 23:34:18

+0

@EyrhonGonzales在哪一行你有錯誤?你可以把你的代碼? – akmozo 2014-12-06 00:25:12

+0

// frame 1 submit_btn.addEventListener(MouseEvent.CLICK,gotomyNextFrame); 功能gotomyNextFrame(事件:MouseEvent)方法:無效 { \t VAR shared_data:字符串= yourName.text \t nextFrame(); } // frrame 2 stop(); import flash.net.SharedObject; var shared_data:String; var mySO:SharedObject = SharedObject.getLocal(「test1」); myResult.text = shared_data; SharedObject.data.mySO = shared_data; @akmozo – 2014-12-06 00:51:28

相關問題