![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Aug 2010
Сообщений: 107
|
Вобщем сам код почти готов, но никак немогу присвоить текстовому полю содержание одного из узлов массива, и вообще теряюсь с проблемой замены этого самого узла.
Вот весь код var xml:XML=new XML(); var xmlList:XMLList=new XMLList(); var menuItem:MenuItem; loadXml(); send_btn.addEventListener(MouseEvent.MOUSE_UP, sendData); addEventListener(Event.ENTER_FRAME, loop); function loop(e:Event):void { if(nameInput_txt.text!=''&&textInput_txt.text!='') { send_btn.enabled=true; }else { if(send_btn.enabled) send_btn.enabled=false; } } function loadXml(e:MouseEvent=null):void { var xmlRequest:URLRequest=new URLRequest('messages.xml'); var loader:URLLoader=new URLLoader(); loader.addEventListener(Event.COMPLETE, xmlLoaded); loader.load(xmlRequest); } function xmlLoaded(e:Event):void { xml=XML(e.target.data); xmlList=xml.children(); updateText(); } function updateText():void { var i:uint=0; for(i;i<xmlList.length();i++) { menuItem = new MenuItem(); menuItem.menuLabel.htmlText+=xmlList[i].name; menuItem.menuLabel2.htmlText+=xmlList[i].text; menuItem.x = 20; menuItem.y = 25 + i*170; //Сделаем, чтобы кнопка выглядела как кнопка (курсор в виде ручки) menuItem.buttonMode = true; menuItem.mouseChildren = false; //Добавим обработчики событий (используются для анимации кнопок) menuItem.addEventListener(MouseEvent.MOUSE_UP, Select); addChild (menuItem); } } function Select(e:MouseEvent):void { trace(xmlList.text[this.i]); } function sendData(e:MouseEvent):void { var newName:String=nameInput_txt.text; var newText:String=textInput_txt.text; nameInput_txt.text=''; textInput_txt.text=''; var newXml:XML=XML('<DATA><name>'+newName+'</name><text>'+newText+'</text></DATA>'); trace(newXml); var phpRequest:URLRequest=new URLRequest('messages.php'); phpRequest.data=newXml; phpRequest.contentType='text/xml'; phpRequest.method=URLRequestMethod.POST; var phpLoader:URLLoader=new URLLoader(); phpLoader.addEventListener(Event.COMPLETE, xmlSended); phpLoader.load(phpRequest); } function xmlSended(e:Event):void { loadXml(); } . Был бы очень признателен за помощь. Думаю сие многим бы пригодилось. По окончании собираюсь выложить исходники. Вот кстати и он сам (незаконченный). |
|
|||||
|
Регистрация: Aug 2010
Сообщений: 107
|
неужели никто не знает?
|
|
|||||
|
[+4 06.05.14]
|
Цитата:
Просто пока что глухо влесу. tf.text = arr[5] as String если по вопросу вверхушке ))) |
|
|||||
|
Регистрация: Aug 2010
Сообщений: 107
|
Текстовое поле находится в мувиклипе вот полный адрес menuItem.menuLabel. В него загружаются данные из XML. Так вот эти клипы дублируют количество узлов в XML, то есть если узлов 10 то и мувиклипов с текстовыми полями будет так же 10, и во все текстовые поля загрузятся данные из соответствующих узлов XML. Вобщем то это прекрасно работает. Другое дело, что я хочу по клику по любому из экземпляров мувиклипа menuItem.menuLabel, загрузить в другое текстовое поле nameInput данные из menuItem.menuLabel (там два похожих клипа menuItem.menuLabel и menuItem.menuLabel2 и для них соответсвующие поля для дублирования nameInput и textInput) и затем все это дело отредактировать и сохранить в тот же самый узел XML с которого и был взят оригинал. Застопорился уже на этапе присвоения значения текстового поля экземпляра menuItem.menuLabel полю nameInput. Уже полинета скачал. непомогает. Чую я где то идиот...
|
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
name и text - в XML это методы, а не свойства, их вызывать надо -
name () метод AS3 function name():Object Выдает полное имя объекта XML. text () метод AS3 function text():XMLList Возвращает объект XMLList всех свойств XML объекта XML, представляющих текстовые узлы XML.
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Aug 2010
Сообщений: 107
|
Цитата:
Добавлено через 26 минут Переписал имена узлов и сменил ссылки в коде. Следующий код: Ввыдает ошибку ReferenceError: Error #1069: Не удалось найти свойство undefined в String; отсутствует значение по умолчанию. at index_fla::MainTimeline/Select() Если использую код без явного указания [this.i], вот такой: То он выдает в окно вывода содержимое текстового поля узла, но только разумеется последнего, а не того по которому кликаю. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Я так понимаю, выше имелось в виду
А с каких пор текстфилды возвращают text как массив? Они возвращают Строку, а у строк нет такой индексации, как Вы изобразили - text[this.i]. Поэтому я не совсем понимаю, что Вы индексируете вообще. Кнопку menuItem? Текстовое поле menuLabel? Как мне кажется, кнопку, в которой потом ищется поле и из него достается текст. Для этого у MouseEvent есть свойство target, указывающее на эту кнопку. Может быть так?
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Aug 2010
Сообщений: 107
|
C каких пор незнаю, ибо я почти ничего незнаю о AS3 потому и спрашиваю ). За подсказку спасибо, действительно выручили, двое суток потратил на поиски и ковыряние интернета.
Последний раз редактировалось Mulin; 22.10.2010 в 00:05. |
![]() |
![]() |
Часовой пояс GMT +4, время: 19:40. |
|
|
« Предыдущая тема | Следующая тема » |
|
|