PDA

Просмотр полной версии : Прокрутка текстового поля одним кликом


sweetlove
16.10.2007, 22:09
Собссно динамическое текстовое поле и в нем текст, вылезающий за пределы этого поля.

Надо его прокручивать мышью.

Прилепила ползунок, кнопки вверх-вниз и обработку прокручивания колесиком.

Далее возник вопрос - при однократном нажатии на кнопку, поле прокручивается на неск. строк. Угу.

А как сделать, чтобы оно постоянно стало прокручиваться, если мышь на кнопке нажать и задержать?

Фантазия иссякла напрочь уже....

aksios
16.10.2007, 22:26
Ну вариантов полно.
Я бы сделал кнопочку в виде клипа и на нем написал:
onClipEvent(enterFrame){
if (this._visible && down){
++_root.text.scroll;
}
if (_root.text.scroll == _root.text.maxscroll){
this._visible = false;
}else{
this._visible = true;
}
}

sweetlove
16.10.2007, 22:40
Хммм..... А вот саму кнопку заюзать в этом плане никак?
Там и так уже клипов и прочего как... ммм.... многа :))))

aksios
16.10.2007, 22:41
А попробовать?
on(press){
down = true;
}

on(release,releaseOutside){
down = false;
}

sweetlove
16.10.2007, 23:07
На кнопке уже висит:
up.onPress = function () : Void
{ if ( inft.scroll > 1) { inft.scroll -= 1; } }

down.onPress = function () : Void
{ if ( inft.scroll < inft.maxscroll ) { inft.scroll += 1; } }

А ты предлагаешь еще и бихавиор повесить?
То что ты написал - не пашет.... То ли спать уже пора то ли...

aksios
16.10.2007, 23:12
onPress срабатывает один раз - когда кнопка нажата. Поэтому у вас и не крутиться. Я написал, как прокрутить до конца.

D12
17.10.2007, 00:47
у кнопак имена "button1" "button2"
var Min_Max:Array = [100, 450];//координаты предела листинга первая минимальная может быть отрицательное число
var Go:Array = [-3, 3];//скорость
for (var i:Number = 0; i<=2; i++) {
this["button"+i].o = i;
this["button"+i].onPress = function() {
g = this.o;
mc.onEnterFrame = function() {
this._y += Go[g-1];
if (this._y<=Min_Max[g-1] && g == 1 || this._y>=Min_Max[g-1] && g == 2) {
this._y = Min_Max[g-1];
}
};
};
this["button"+i].onRelease = function() {
delete mc.onEnterFrame;
};
}