![]() |
|
||||||||||
|
|||||
|
Регистрация: Sep 2001
Адрес: Russia, Moscow
Сообщений: 2
|
Народ, помогите!
Есть некая текстовая площадь, в котрой забиты строчки типа Data.UTC. Есть график в котором ось Х == Data.UTC Соответственно, каждая точка графика соответствует определённому времени(Data.UTC).... Задача: необходимо чтобы при выборе точки на графике подсвечивалась в TextArea строчка с соответствующим этой точке Data.UTC.... Кто знает подскажите!!!... PLZ! |
|
|||||
|
  акула
|
когда строишь график, запиши в каждую точку какая именно запись Data ей соответствует, потом при выборе этой точки ты будешь знать что именно тебе подсвечивать, а это уже можно сделать разными способами.
Главная идея - пусть точка знает откуда она взялась, а не думает что ее в капусте нашли. ;) |
|
|||||
|
  акула
|
ну коль подсвечивать, тогда рекомендую сделать не текстовое поле, а упорядоченый список. Примерная схема такова:
1 делаешь мувик, в нем динамическое текстовое(по тексту Text_Field) поле на одну строку. 2 создаешь в нем второй кадр с подсвеченой строкой. 3 в первом кадре создаешь функции: function On(){ gotoAndStop(2); } function Off(){ gotoAndStop(1); } function SetValue(val){ Text_Field = Val; } 4 не вставляя этот мувик в сцену, делаешь его экспортируемым - Library->moviClip->LeftClik->Linkage->export/ там пишешь имя (например ListItem) без кавычек. 5 когда строешь график, создавай для каждой точки экземляр ListItem(примерный способ): List = new Array(); Points - количество точек YPos = 0; - откуда начнется список. for (i=0; i<Points; i++){ ItemName = "item" add i /// новое имя для записи this.attachMovie("ListItem", ItemName, i+10); List.push(ItemName) /// запомним имя элемента списка на будущее. ///// Создаем точку и в процессе записываем в нее путь к ListItem: Point.SetOwner(eval(ItemName)._target) /// функция SetOwner должна просто запоминать то, что ей возвращают в текстовую строку. /// eval(ItemName).SetValue(э... что там у тебя?) /// /// здесь тебе нужно поставить новый элемент в конец списка eval(ItemName)._Y = YPos; YPos += 20 /// 20 - это условно, высота элемента списка. eval(ItemName)._X = 100; // куда ставить по Х. } Только что мы создали список значений, привязанных к графику. Теперь посмотрим что нужно сделать когда юзер тыкает в точку: в точке на кнопке нужно прописать следующее: on (press){// условно, можно и на другое событие. eval(Owner).On(); /// Owner - записывается в функции SetOwner(), ее значение - путь к элементу списка со значением текущей точки. } так мы включаем подсветку. Теперь ее нужно будет выключить, и на всякий случай, выключим все: function HideAll(){ /// должна быть там же, где мы создовали элементы списка. for (i = 0; i<=List.length; i++){ eval(list[i]).Off() /// помнишь, мы записывали в массив при создании? Вот он и пригодился... } } Когда нужно погасить выделение, вызываем функцию HideAll, и все. Надеюсь, я не запутал тебя еще больше... Однако, чтобы это заработало, тебе нужно это все понять и написать самому. Просто скопировать не получится, потому, что у меня к сожалению нет времени проверить это все на ошибки в синтаксисе, но логика правильная и должна работать. |
|
|||||
|
Если строки отсортировани по возрастанию (убыванию) и идут с равным шагом то номер строки можно вычислить зная координату x щелчка мышки. Что-то навроде этого:
Если по возрастанию N=(x-x_min)*N_max/(x_max-x_min); Если по убыванию N=(x_max-x)*N_max/(x_max-x_min); |
![]() |
Часовой пояс GMT +4, время: 16:46. |
|
|
« Предыдущая тема | Следующая тема » |
|
|