Хорошо, поэтому я пытаюсь создать мобильную флеш-игру (я в основном аниматор, рассказчик), и у меня есть проблема с введенным текстом для имени игрока. Я часто читаю полезные советы на этом сайте, поэтому я подписался, чтобы получить помощь. Код, который я использую для загрузки и сохранения данных, - saveDataObject, но насколько я знаю, вводный текст должен использоваться с кодом пакета. Я попытался преобразовать его в функцию var, но затем эти ошибки возникают. Я не уверен, как использовать код класса пакета, и все, что я читал на нем, было запутанным. Я в значительной степени самоучкой за все, что знаю о коде, хотя учебники и форумы, поэтому, если это не объяснено каким-то образом, я могу понять, что я не смогу это сделать ...Неявное принуждение значения типа 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. ** 2nd ** remove 'playerName = txtPlayer; '. Я не уверен, что он там делает, но вы все равно настраиваете его в функции loadData1() ', правильно? – 3vilguy
'playerName' предназначен для имени игрока. Но я копирую код с кодами и модифицировал его, пытаясь сделать его кодом имени. Я буду перемещать 'playerName = txtPlayer;' to 'loadData1() «Мне нужно настроить имя игрока как функцию имени, я думаю, я не был таким ясным ...Извините, я делаю гораздо лучше лично, вот почему я обычно читаю сообщения других людей, но я не мог найти то, что мне было нужно ... –