|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
[+1.4 08.07.11]
Регистрация: Jun 2011
Сообщений: 217
|
Ошибка сохранения данных из xml в массив
{ import flash.events.MouseEvent; import flash.display.MovieClip; import flash.display.DisplayObject; import flash.events.Event; import flash.net.URLLoader; import flash.net.URLRequest; public class App extends MovieClip { var myXML:XML; var XML_URL:String = "http://vk-life.com/data.xml"; var myLoader:URLLoader = new URLLoader(); var img:Array = []; var question:Array = []; var answer:Array = []; var answer_img:Array = []; var position = 0; public function App() { myLoader.addEventListener(Event.COMPLETE, xmlLoaded); myLoader.load(new URLRequest(XML_URL)); SetQuestion(); } public function xmlLoaded(event:Event):void { myXML = new XML(myLoader.data); for each (var element:XML in myXML.elements()) { if (element.name() == "img") { for each (var imggg:XML in element.elements()) { img.push(imggg.toString()); } } if (element.name() == "question") { for each (var questionnn:XML in element.elements()) { question.push(questionnn.toString); } } if (element.name() == "answer") { for each (var answerrr:XML in element.elements()) { answer.push(answerrr.toString()); } } if (element.name() == "answer_img") { for each (var answer_imggg:XML in element.elements()) { answer_img.push(answer_imggg.toString()); } } } } public function SetQuestion () { question_txt.text = answer[position]; } } } |
|
|||||
Попробуйте сделать современно:
Возможно, это из-за того, что вы используете toString instead of toXMLString. |
|
|||||
[+1.4 08.07.11]
Регистрация: Jun 2011
Сообщений: 217
|
Всё равно не работает. Кстати забыл, вот структура xml:
<data> <img> <img0>img0</img0> <img1>img1</img1> </img> <question> <question0>question0</question0> <question1>question1</question1> </question> <answer> <answer0>answer0</answer0> <answer1>answer1</answer1> </answer> <answer_img> <answer_img0>answer_img0</answer_img0> <answer_img1>answer_img1</answer_img1> </answer_img> </data> |
|
|||||
Зачем вам xml если вы не соблюдаете иерархию?
<items> <item id="0"> <image><image> <question></question> <answer></answer> <answer_image></answer_image> </item> <item id="1"> <image><image> <question></question> <answer></answer> <answer_image></answer_image> </item> <item id="2"> <image><image> <question></question> <answer></answer> <answer_image></answer_image> </item> </items> |
|
|||||
[+1.4 08.07.11]
Регистрация: Jun 2011
Сообщений: 217
|
А в чём у меня ошибка то? Почему он получает данные но не сохранят их в массив?
Последний раз редактировалось argoniummm; 15.08.2011 в 08:59. |
|
|||||
1) Очень неудобочитаемый код из-за того что вы воспользовались неудобным инструментом для работы с xml.
Вот как лучше с xml работать: http://help.adobe.com/ru_RU/ActionSc...0204-7e72.html 2) Названия переменных, которые ничего не говорят об их предназначении. 3) Как вы определили, что данные в массив не сохраняются? Я вижу, что вы проверили получение данных, а где вы проверили, есть ли данные в массиве? Должны строки записываться в массив. Похоже проблема где-то в другом месте. |
|
|||||
questionnn.toString это совсем не то, что видимо ожидается
попробуй questionnn.toString() Добавлено через 28 минут да и присоединяюсь к высказавшимся, выглядит диковато для E4X вот так яснее будет, не? Последний раз редактировалось silin; 15.08.2011 в 12:06. |
|
|||||
[+1.4 08.07.11]
Регистрация: Jun 2011
Сообщений: 217
|
Хм... У меня появилась ещё 1 проблема:
Вот весь класс, да я знаю что многое написано не рационально. package { import flash.display.*; import flash.desktop.*; import flash.events.*; import flash.net.*; import flash.text.*; import flash.xml.*; public class App extends MovieClip { var myXML:XML; var XML_URL:String = "http://vk-life.com/data.xml"; var myLoader:URLLoader = new URLLoader(); var img:Array = []; var question:Array = []; var answer:Array = []; var answer_img:Array = []; var position:int = 0; var number:int = 0; var my_answer:Array = []; var x_centre = 566; var y_centre = 256; var size = 15; public function App() { myLoader.addEventListener(Event.COMPLETE, xmlLoaded); myLoader.load(new URLRequest(XML_URL)); SetQuestion(); //stage.addEventListener(KeyboardEvent.KEY_UP, keyUpHandler); exit_btn.addEventListener(MouseEvent.CLICK, Exit); } public function xmlLoaded(event:Event):void { var element:String; myXML = new XML(myLoader.data); for each (element in myXML.img.*) { img.push(element); } for each (element in myXML.question.*) { question.push(element); } for each (element in myXML.answer.*) { answer.push(element); } for each (element in myXML.answer_img.*) { answer_img.push(element); } } public function processXML() { var image_question:MovieClip = new MovieClip(); var imageLoader = new Loader(); image_question.addChild(imageLoader); imageHolder.mouseChildren = false; imageLoader.x = 0; imageLoader.y = 0; imageLoader.load(new URLRequest(img[k])); addChild(image_question); } public function SetQuestion() { question_txt.text = answer[position]; } public function Exit(event:Event):void { // getURL("javascript: closeTaskWindow("")"); } /* private function keyUpHandler(event:KeyboardEvent):void { trace(event.keyCode); if (event.keyCode == 65) { my_answer.push("ф"); number = number + 1; } if (event.keyCode == 66) { my_answer.push("и"); number = number + 1; } if (event.keyCode == 67) { my_answer.push("с"); number = number + 1; } if (event.keyCode == 68) { my_answer.push("в"); number = number + 1; } if (event.keyCode == 69) { my_answer.push("у"); number = number + 1; } if (event.keyCode == 70) { my_answer.push("а"); number = number + 1; } if (event.keyCode == 71) { my_answer.push("п"); number = number + 1; } if (event.keyCode == 72) { my_answer.push("р"); number = number + 1; } if (event.keyCode == 73) { my_answer.push("ш"); number = number + 1; } if (event.keyCode == 74) { my_answer.push("о"); number = number + 1; } if (event.keyCode == 75) { my_answer.push("л"); number = number + 1; } if (event.keyCode == 76) { my_answer.push("д"); number = number + 1; } if (event.keyCode == 77) { my_answer.push("ь"); number = number + 1; } if (event.keyCode == 78) { my_answer.push("т"); number = number + 1; } if (event.keyCode == 79) { my_answer.push("щ"); number = number + 1; } if (event.keyCode == 80) { my_answer.push("з"); number = number + 1; } if (event.keyCode == 81) { my_answer.push("й"); number = number + 1; } if (event.keyCode == 82) { my_answer.push("к"); number = number + 1; } if (event.keyCode == 83) { my_answer.push("ы"); number = number + 1; } if (event.keyCode == 84) { my_answer.push("е"); number = number + 1; } if (event.keyCode == 85) { my_answer.push("г"); number = number + 1; } if (event.keyCode == 86) { my_answer.push("м"); number = number + 1; } if (event.keyCode == 87) { my_answer.push("ц"); number = number + 1; } if (event.keyCode == 88) { my_answer.push("ч"); number = number + 1; } if (event.keyCode == 89) { my_answer.push("н"); number = number + 1; } if (event.keyCode == 90) { my_answer.push("я"); number = number + 1; } if (event.keyCode == 186) { my_answer.push("ж"); number = number + 1; } if (event.keyCode == 222) { my_answer.push("э"); number = number + 1; } if (event.keyCode == 188) { my_answer.push("б"); number = number + 1; } if (event.keyCode == 190) { my_answer.push("ю"); number = number + 1; } if (event.keyCode == 219) { my_answer.push("х"); number = number + 1; } if (event.keyCode == 221) { my_answer.push("ъ"); number = number + 1; } } } } D:\загадки\App.as, строка 6 1152: Конфликт с наследуемым определением flash.events:EventDispatcher.toString в пространстве имен public. ComponentShim (скомпилированный фрагмент), строка 1 5000: В класс "fl.core.ComponentShim" должен входить подкласс "flash.display.MovieClip", так как он связывается с символом такого же типа в библиотеке. ComponentShim (скомпилированный фрагмент), строка 1 5000: В класс "fl.controls.Label" должен входить подкласс "flash.display.MovieClip", так как он связывается с символом такого же типа в библиотеке. ComponentShim (скомпилированный фрагмент), строка 1 5000: В класс "fl.controls.TextArea" должен входить подкласс "flash.display.MovieClip", так как он связывается с символом такого же типа в библиотеке. ComponentShim (скомпилированный фрагмент), строка 1 5000: В класс "fl.controls.TextInput" должен входить подкласс "flash.display.MovieClip", так как он связывается с символом такого же типа в библиотеке. ComponentShim (скомпилированный фрагмент), строка 1 5000: В класс "fl.controls.UIScrollBar" должен входить подкласс "flash.display.MovieClip", так как он связывается с символом такого же типа в библиотеке. |
|
|||||
конкретно помочь тут нечем
похоже, что источники этих ошибок из-за бардака с объектами\компонентами, которые положены на таймлайн вручную и для которых IDE, генерит свои объявления и т.п. надо наводить порядок в fla, отключить automatically declare stage instances в настройкаах, объявить их явно в классе, тогда возможно станет понятнее |
|
|||||
[+1.4 08.07.11]
Регистрация: Jun 2011
Сообщений: 217
|
Хм... Я не понимаю это... Можете помочь если я выложу исходники: Просто я сижу уже пару часов и не могу понять... http://***********/25196115
|
Часовой пояс GMT +4, время: 15:46. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|