Показать сообщение отдельно
Старый 19.10.2001, 13:08
C2Plus вне форума Посмотреть профиль Отправить личное сообщение для C2Plus Посетить домашнюю страницу C2Plus Найти все сообщения от C2Plus
  № 3  
C2Plus
  акула
 
Аватар для C2Plus

Регистрация: Mar 1999
Адрес: не проживает.
Сообщений: 2,077
Отправить сообщение для C2Plus с помощью ICQ
ну коль подсвечивать, тогда рекомендую сделать не текстовое поле, а упорядоченый список. Примерная схема такова:

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, и все.

Надеюсь, я не запутал тебя еще больше... Однако, чтобы это заработало, тебе нужно это все понять и написать самому. Просто скопировать не получится, потому, что у меня к сожалению нет времени проверить это все на ошибки в синтаксисе, но логика правильная и должна работать.