Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Прокрутка текста (http://www.flasher.ru/forum/showthread.php?t=151825)

RomECH 06.03.2011 18:19

Прокрутка текста
 
Каким образом сделать просто прокрутку некого динамического текста. Желательно с загрузкой :rolleyes:

КорДум 06.03.2011 18:21

По таймеру
Код AS3:

scrollV += 1;

?

RomECH 06.03.2011 18:26

Цитата:

Сообщение от КорДум (Сообщение 978446)
По таймеру?

нет, в смысле мне нужен скроллер (бегунок), кажется, UIScrollBar

ChuwY 06.03.2011 19:41

Код AS3:

package  {
  import flash.display.MovieClip;
  import flash.text.TextField;
  import fl.controls.UIScrollBar;
  import flash.utils.Timer;
  import flash.events.TimerEvent;
 
  public class Main extends MovieClip {
    private var _textfield : TextField = new TextField();
    private var _scrollBar : UIScrollBar = new UIScrollBar();
    private var _timer    : Timer = new Timer(100);
 
    public function Main() {
      addChild(_textfield);
      addChild(_scrollBar);
      _textfield.width = 200;
      _textfield.height = 200;
      _textfield.multiline = true;
      _textfield.wordWrap = true;
 
      _scrollBar.height = _textfield.height;
      _scrollBar.x = _textfield.x + _textfield.width;
      _scrollBar.scrollTarget = _textfield;
 
      _timer.addEventListener(TimerEvent.TIMER, timerEventHandler);
      _timer.start();
    }
 
    private function timerEventHandler(event : TimerEvent):void{
      var timer : Timer = event.currentTarget as Timer;
      _textfield.appendText("currentCount : " + timer.currentCount.toString() + "\n");       
 
      _scrollBar.update();
      _textfield.scrollV = _textfield.maxScrollV;
    }
}
}


Bgg 06.03.2011 19:45

Кашмар сколько "_"

ChuwY 06.03.2011 20:17

Ну сколько "private", столько и "_".
Что в этом плохого или неправильного?

Bgg 06.03.2011 20:21

Не покидает ощущение лишнего и ненужного символа.

RomECH 06.03.2011 20:32

спасибо, разобрался!

ChuwY 06.03.2011 21:05

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

Ну кому как удобнее, конечно :)
Некоторая избыточность -- моя плата за детерминированность оформления

gloomyBrain 06.03.2011 22:09

Цитата:

Некоторая избыточность -- моя плата за детерминированность оформления
да ну, какая избыточность, если в коде четко видно что переменная приватная - это отлично помогает ориентироваться. Как правило, если не говорить о громоздких алгоритмах, локальная переменная отличается от публичной тем, что явно видно ее определение в начале метода. Если говорить о приватных или internal переменных - то я всегда пишу их начиная с "_", т.к. при таком написании я четко вижу, что доступно для всех, а что - только для "меня".

ЗЫ
еще один плюс подчеркиваний (осознал только сейчас) - в FD автокомплит начинается с набора двух символов. То есть, помня что переменная приватная, на автомате набираешь "_". А дальше первая буква переменной - и вот он автокомплит =) На мой взгляд, это удобно (хотя тем, у кого автокомплит по ctrl+space это вряд ли знакомо)

КорДум 06.03.2011 22:15

Раз уж пошел оффтоп: хотел бы узнать, а для чего показывать, какая переменная приватная, а какая нет? Внутри класса, на мой взгляд, бессмысленно, а вне класса видны только публичные свойства и так.

Wolsh 06.03.2011 22:15

Я тоже всегда именую приватные переменные с underscore.
Вот к названиям типа timerEventHandler никак не привыкну, все по-старинке - "onTimer", "onFadeOutStart" ))) Никак не могу понять, чем такое название проясняет смысл лучше, чем то что идет за ним в скобках))
Код AS3:

function timerEventHandler ( event:TimerEvent ) : void

Добавлено через 12 минут
Цитата:

для чего показывать, какая переменная приватная, а какая нет?
У них же разное назначение в теле функции. Локальная переменная - временная, это "оперативная память", которая умрет когда функция отработает. Приватная же - storage, и о ее содержимом после всех вычислений надо заботиться. Она - для многих функций/методов. И когда в теле просматриваемой мной функции вдруг появляется имя с "_" - я знаю что это член класса и он определен ЗА пределами этой функции. Я не беспокоюсь о том, что эта переменная не объявлена и не инициализирована ЗДЕСЬ. Я беспокоюсь только о том, чтобы в неё не записалось какое-то вспомогательное промежуточное значение. Например я знаю что rowWidth это плавающая ширина при расстановке элементов, а _rowWidth это результирующая после того, как вся строка составлена.

gloomyBrain 06.03.2011 22:28

Цитата:

хотел бы узнать, а для чего показывать, какая переменная приватная, а какая нет? Внутри класса, на мой взгляд, бессмысленно, а вне класса видны только публичные свойства и так.
Ну взять хотя бы акцессоры и мутаторы:
Код AS3:

private var _direction:Point = ...
...
public function get direction():Point {
 
}
 
public function set direction():Point {
 
}

Максимальная ясность внутри класса - где акцессор-мутатрор, а где приватная переменная. При этом так же ясно, что имеется ввиду одно и то же.

Bgg 06.03.2011 22:29

Цитата:

Сообщение от gloomyBrain (Сообщение 978496)
Ну взять хотя бы акцессоры и мутаторы:

А ещё зачем?

gloomyBrain 06.03.2011 22:36

Ну, если Вы согласны называть часть приватных переменных начиная с "_", то какие у Вас есть причины этого не делать для второй части? =)

КорДум 06.03.2011 22:46

Wolsh, а зачем использовать "_" для приватных, а не для локальных? Красивее (да и понятнее, на мой взгляд) ведь смотрится, когда "_" нет вообще или меньше всего? :)
gloomyBrain, вот для акцессоров и мутаторов я и использую.
Цитата:

какие у Вас есть причины этого не делать для второй части?
Эстетика и красота правят миром кодом!

Bgg 06.03.2011 22:48

Цитата:

Сообщение от gloomyBrain (Сообщение 978498)
Ну, если Вы согласны называть часть приватных переменных начиная с "_", то какие у Вас есть причины этого не делать для второй части? =)

Лень и ещё ощущение бессмысленного, повсеместно расставленного символа в коде.

Зачем мне тут наживать 4 раза shift+"-"?
Код AS3:

private function ppc():void
{
    _internalTextField.text = _internalVar + _otherInternalVar + _internalInt.toString();
}


Wolsh 07.03.2011 01:44

Цитата:

Wolsh, а зачем использовать "_" для приватных, а не для локальных? Красивее...
Красивее - когда pubic члены класса не содержат подчеркивания, согласны?)) Ну а дальше все само организуется - storage для геттеров и сеттеров называются как эти геттеры и сеттеры, но с подчеркиванием. И они - приватные. И ничто не заставит меня называть одни приватные по конвенции, а другие приватные - как в голову взбредет.
Насчет того, какие в коде встречаются чаще - ну это уж когда как.
Подчеркивание цепляет глаз. Приватные рассыпаны по разным функциям - это они должны цеплять глаз, чтобы легче было найти их в других методах. А как раз локальные переменные в контексте всей страницы кода совершенно неинтересны и могут сливаться сколь угодно. Когда-то у меня как дизайнера тоже были претензии к этому уродливому подчеркиванию, и я тоже размышлял так - пусть уродливыми будут малозначимые и временно живущие, то есть - локальные. А гордые бессмертные - приватные - пусть будут красивыми, без костылей. Я попробовал писать так. Разочарование настигло на следующий же день, когда я попытался прочитать вчерашний код - глаз упорно цеплялся за андерскоры локальных переменных, совершенно меня не интересующих при попытке собрать в голове логику класса.

in4core 07.03.2011 02:02

Бредовый разговор если честно. Кто как хочет так и пишет. Но писать _private есть правильно имхо. И понятно и читабельно + автокомплит быстрей... ваще короче одни плюсы

Добавлено через 1 минуту
А вот минусов кроме ЛИШНИЙ раз ШИФТ нажать - я не вижу. лентяи...


Часовой пояс GMT +4, время: 02:04.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.