![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Sep 2012
Сообщений: 204
|
Привет
Ситуация следующая = есть несколько массивов, с цифровыми значениями (2, 6 , 10, 14 т.д. Также имеются клипы, они же как кнопки. К ним сделал ярлык для сокращения кода. В итоге это от btn1 до btn 200 Задача состоит в том чтобы проверить к e.currentTarget совпадение по названию ярлыка к значению в массиве. Например. Я навел на клип мышью. instance name клипа = object3_btn. ссылка же- object3. По наведению делаюься некоторые операции + появляется toolTip_mc, текст в котором зависит от того, какие последние цифры у выбранного обекта. Т.к. это object3, то он относится к 3-ему массиву, где лежат значения [3,7,11,15,19 и т.д.] Не могу все это связать. Получилось вот что function over (e:MouseEvent):void { var left:Array = [3, 7, 11, 15, 19, 23, 27, 31, 35, 39, 43]; var lenght:uint = left.length; for (j = 0; j < lenght; j++) { if (e.currentTarget.name == 'object'+left[j]+'_btn') { toolTip_txt.text = "текст подсказки"; } } } Подскажите пожалуйста, как правильно написать такую функцию |
|
|||||
|
[+4 06.05.14]
|
Ну вообще то все верно написано, кроме одной детали))) должно работать, только вот так будет понятнее всем
private var left:Array = [3, 7, 11, 15, 19, 23, 27, 31, 35, 39, 43]; function over (e:MouseEvent):void { var name:String = e.currentTarget.name; var lenght:uint = left.length; for (var j:uint = 0; j < lenght; j++) { var index:String = left[j].toString(); var searchName:String = 'object'+ index +'_btn'; if (name == searchName ) { toolTip_txt.text = "текст подсказки"; break; } } }
__________________
Марк Tween |
|
|||||
|
Регистрация: Dec 2009
Сообщений: 125
|
А ещё можно выделить из строки имени число и через indexOf проверить, если оно в массиве.
|
|
|||||
|
Регистрация: Sep 2012
Сообщений: 204
|
spirit2 можешь показать код?
in4core не выходит ничего. Делаю трейс на name , searchName. в name все верно- выдает current Target.name. а вот в searchName отображается последний элемент массива. Но если я нахожу ту кнопку, номер которой соответствует последнему элементу массива, все работает. Это было без строки break Если же её прописать, то ошибка |
|
|||||
|
Регистрация: Sep 2012
Сообщений: 204
|
я понимаю, что при нахождении должен прирвать, но ошибка вылетает все равно
|
|
|||||
|
Регистрация: Dec 2009
Сообщений: 125
|
Если все нэймы вида objectX_btn, где X число, то:
function over (e:MouseEvent):void { var left:Array = [3, 7, 11, 15, 19, 23, 27, 31, 35, 39, 43]; var nameObject:String = e.currentTarget.name.slice(0, -4); //objectX var numObject:int = int(nameObject.slice(6, nameObject.length)); // X if (left.indexOf(numObject) != -1){ //Число содержится в массиве left под индексом left.indexOf(numObject) } } Последний раз редактировалось spirit2; 07.11.2012 в 17:58. |
|
|||||
|
Регистрация: Sep 2012
Сообщений: 204
|
сейчас попробую. А в этой строке сам break; и есть
spirit2 а чем является переменная str? (ошибка с str.length) |
|
|||||
|
Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
|
вместо
напишите и вообще учитесь искать в справке, что делают различные функции. |
|
|||||
|
Регистрация: Dec 2009
Сообщений: 125
|
Ага, описался.
Кстати да, адобовская справка и поиск по форуму помогут быстрей, чем ожидание ответа. |
![]() |
![]() |
Часовой пояс GMT +4, время: 13:27. |
|
|
« Предыдущая тема | Следующая тема » |
|
|