好吧,所以我試圖創建一個手機Flash遊戲(我主要是一個動畫師,一個講故事的人),我有與玩家名稱的輸入文字有關。我經常在這個網站上閱讀有用的提示,所以我註冊了一些幫助。我用來加載和保存數據的代碼是saveDataObject,但據我所知,輸入文本必須與包代碼一起使用。我試圖將其轉換爲函數var,但隨後出現這些錯誤。我不確定如何使用Package類代碼,並且我讀過的所有內容都令人困惑。我非常自我教導我所知道的關於代碼的一切,但教程和論壇,所以如果它沒有以一種方式解釋我可以理解我不會做到這一點...隱式強制的text.flash類型的值:TextField到不相關的Int
這是代碼段if我不清楚(誤差線分開):
var playerName:int;
init(); // this line goes directly beneath the variables
function f_1(init):void
{ // call once to set everything up
saveDataObject = SharedObject.getLocal("DataBattle/character/name"); // give the save data a location
-
playerName = txtPlayer;
-
function addName(e:TouchEvent):void
{
var myTextBox1:TextField = new TextField();
var txtPlayer:TextField = new TextField();
var myText:String = "Cyan";
function CaptureUserInput()
{
captureText();
}
function captureText():void
{
myTextBox1.type = TextFieldType.INPUT;
myTextBox1.background = true;
addChild(myTextBox1);
myTextBox1.text = myText;
myTextBox1.addEventListener(TextEvent.TEXT_INPUT, textInputCapture);
}
function textInputCapture(event:TextEvent):void
{
var str:String = myTextBox1.text;
createOutputBox(str);
}
function createOutputBox(str:String):void
{
txtPlayer.background = false;
txtPlayer.x = 200;
addChild(txtPlayer);
txtPlayer.text = str;
}
-
if(saveDataObject.data.characterName = playerName == null)
-
{ // checks if there is save data
trace("No Player data yet."); // if there isn't any data on the computer...
saveDataObject.data.characterName = playerName; // ...set the savedScore to 0
}
else
{
trace("Player data found."); // if we did find data...
loadData1(); // ...load the data
}
function loadData1():void
{
playerName = saveDataObject.data.characterName; // set the current score to the saved score
trace("Data Loaded!");
}
}
}
function saveData(e:TouchEvent):void
{
saveDataObject.data.characterName = playerName; // set the saved score to the current score
trace("Data Saved!");
saveDataObject.flush(); // immediately save to the local drive
trace(saveDataObject.size); // this will show the size of the save file, in bytes
}
好的,您剛剛放大了導致錯誤的確切兩行,我將在此之後編輯問題以說明問題。謝謝,但現在我有一個或兩個後續問題。 playerName是由保存代碼的修改後的代碼構成的,因此它對數字的設置很有意義。這個代碼的版本是什麼讓我將playerName存儲爲子輸出txtPlayer的顯示值?我並不完全確定將saveDataObject.data.characterName賦值給playerName。 –
好的,所以**首先**我會開始重命名變量,因爲它現在非常混亂。當我看到'playerName'時,我希望它是......呃......球員名字?所以如果這應該是一個分數,我推薦給它命名'playerScore',現在清楚它是什麼以及爲什麼它是一個Int。 **第二**刪除'playerName = txtPlayer; '。我不確定它在做什麼,但是你可以在'loadData1()'函數中設置它,對嗎? – 3vilguy
'playerName'是爲了玩家的名字,但是我複製了一個分數代碼並修改了它,試圖使它成爲一個名字代碼。我將移動'playerName = txtPlayer;'到'loadData1()'我需要能夠設置播放器名稱作爲名稱函數,我想我並不那麼清楚...對不起,我親自做得更好,這就是爲什麼我通常閱讀其他人的帖子,但我找不到我需要的... –