![]() |
|
||||||||||
|
|||||
|
Регистрация: Oct 2009
Сообщений: 72
|
Без всякого лишнего хлама код выглядит так:
public static function AddPoint(tempXML:XML, parentObj:MovieClip):MovieClip { var retval; retval.id = tempXML.@text; myArray[retval.id] = tempXML.toString(); retval.addEventListener(MouseEvent.CLICK, clickHandler); } public static function clickHandler(event:MouseEvent){ var inText:TextField = new TextField; inText.multiline = true; inText.htmlText = myArray[event.currentTarget.id]; } |
|
|||||
|
Что это за чудеса? =)
И где Ваша функция возвращает объект класса MovieClip?
__________________
...вселенская грусть Последний раз редактировалось gloomyBrain; 13.11.2009 в 15:50. |
|
|||||
|
Регистрация: Oct 2009
Сообщений: 72
|
Где-то она все-таки от МувиКлипа наследуется, но дело не в этом.
id ей хорошо присваивается и даже кое-где используется, поэтому проблема ну явно не в это ) Добавлено через 2 минуты Ну а что в этом такого? Есть в ХМЛ-теге аттрибут text. Вот я в id и назначаю этот аттрибут... |
|
|||||
|
Dictionary вам в помощь
__________________
http://cleptoman.free-lance.ru achivements: дважды благословлен на воровство. осеяный благодатью |
|
|||||
|
Регистрация: Mar 2008
Адрес: Ростов-на-Дону
Сообщений: 354
|
Dictionary тут использовать не нужно. Достаточно Object. А проблема в чём-то другом.
_SoWa, где у вас находится объявление и инициализация myArray? Добавлено через 1 минуту А также подозрительна вот эта строчка: Она явно приведёт к ошибке, так как переменная retval у вас ничем не инициализирована и равна undefined. Может быть, вы хотели и её использовать как хэш? Тогда нужно так: var retval:Object = new Object(); retval.id = String(tempXML.@text[0]); //если не привести к строке, retval.id будет содержать объект XML, что, уверен, вам не нужно. //а если не указать на нулевой элемент, то вообще XMLList. //можно также написать retval['id'] = String(tempXML.@text[0]), что в данном случае равносильно. //далее можно обращаться к retval.id, имеющему тип String. Последний раз редактировалось SamFR; 13.11.2009 в 23:15. |
|
|||||
|
Регистрация: Oct 2009
Сообщений: 72
|
Так, наверно стоит пояснить, чтобы не вызывать у вас ужаса в глазах
![]() retval объявляется в другой функции. Так как код не мой, то возможно и правда, то что вы говорите. Но этой переменной вполне нормально устанавливается свойство id. Инициализация myArray находится сразу в начале класса. public var myArray:Object = {}; или myArray:Array = new Array(); |
|
|||||
|
Если компилятор не ругается на
, значит с этой часть кода все в порядке. А найти ту часть кода, с которой что-то не в порядке, представляется мне довольно сложной задачей (при условии, что код-то никто не выкладывает)
__________________
...вселенская грусть |
|
|||||
|
Регистрация: Mar 2008
Адрес: Ростов-на-Дону
Сообщений: 354
|
Но, если у вас дествительно в начале функции addPoint стоит строчка
то в данной функции вы объявляете локальную переменную, область видимости которой перекроет ту, другую retval, и в addPoint() переменная retval будет равна undefined. Что бы там ни объявлялось в другой функции (к слову, переменные, объявленные в теле функции/метода, видны только в нём, и после окончания работы функции/метода удаляются). А вот с этим должна быть проблема, так как метод addPoint() у вас статический, а свойство myArray - нет, поэтому его видно из addPoint() не будет. Последний раз редактировалось SamFR; 13.11.2009 в 23:46. |
![]() |
![]() |
Часовой пояс GMT +4, время: 13:45. |
|
|
« Предыдущая тема | Следующая тема » |
|
|