PDA

Просмотр полной версии : сбой отрисовки линий


Nickoledion
15.01.2004, 12:54
Привет, всем!
вот код, с помощью которого я отрисовываю много-много горизонтальных чёрточек. А потом перечёркиваю их одной длинной полоской. (не спрашивайте "зачем?" :) )
Всё это на Flash 5;

MovieClip.prototype.drawLine = function(ax1, ay1, ax2, ay2) {
with (this) {
lineStyle(1, 0, 100);
moveTo(ax1, ay1);
lineTo(ax2, ay2);
}
}

var mcGround = this.createEmptyMovieClip("mcGround", 1);
mySP.setScrollContent(mcGround);

for (var i=0; i<2681; i++) {
ty = 3 * i;
mcGround.drawLine(5, ty, 15, ty);
}

mcGround.drawLine(10, 0, 10, ty);

mySP.refreshPane();

---------------
так вот, если граница цикла меньше числа 2681, то всё чётко прорисовывается. Если немного больше - то вертикальная линия начинает глючить и прорисовываться частями (или даже копировать себя). Если же заменить на совсем большое - например 12681 - тогда и горизонтальные чёрточки будут глючить, а внизу сольются в одно целое! :confused:

Подскажите, плз, что за глюк такой и как его побороть. Спасибо!

opex
15.01.2004, 18:13
просто когда координата у привышает максимальню то её автоматм кидает на минимальную и получается что эти черточки рисуются покругу вот а так как у тебя гдето есть смещение на 1 пиксель они начинают глючить вот те код там все сразу видно
_root.createEmptyMovieClip("ver", 0);
with (_root.ver) {
lineStyle(0, 0x000000, 100);
for (i=0; i<20000; i += 5) {
moveTo(25, i);
lineTo(35, i);
}
moveTo(30, 0);
lineTo(30, i);
}

Nickoledion
15.01.2004, 19:38
ок! Спасибо!
И, как я понимаю, это максимальное значение изменить/установить никак нельзя!? :(

sergwizard
16.01.2004, 01:25
Всё это на Flash 5;

Везет же некоторым! А у меня все это только в МХ работает. :D

Штрек
16.01.2004, 04:56
У него, наверное 5ка переходящая в 7ку. :D

Nickoledion
16.01.2004, 12:12
Оригинал написал(а) Штрек
У него, наверное 5ка переходящая в 7ку. :D

Прошу прощения - ошибся я. Flash MX, конечно же! :)

styx
16.01.2004, 12:49
просто когда координата у привышает максимальню то её автоматм кидает на минимальную
А вот такой вопрос - если где-нибудь официальная информация по этим nin/max значениям? Я тоже в какой-то момент на это напоролся и долго мучался... но не скажу, что полученное решение меня устраивает. Ещё тот же эфект с _scale параметрами - при увеличении больше какой-то величины круг превращается... ну, можете догадаться, во что он превращается. И вот как бы вычислить те значения, которые использовать нельзя - ведь они, видимо, зависят от координат того, что находится в клипе?

sergwizard
16.01.2004, 21:15
Я тоже в какой-то момент на это напоролся и долго мучался... но не скажу, что полученное решение меня устраивает.

А скажите-ка мне, мученик styx и Nickoledion, на кой пес вам такие большие величины? Вот, давайте посмотрим на эти строчки из кода:
for (var i=0; i<2681; i++) {
ty = 3 * i; … }
Получаем в итоге 8043 пикселя по оси у. Это на порядок больше, чем размер экрана монитора. Но и этого вам мало. Вы хотите больше. Зачем???? Для чего вам такой(!) Flash документ. Куда вы его запихивать собираетесь? Просто интересно услышать логичное объяснение.

Штрек
16.01.2004, 21:46
Оригинал написал(а) sergwizard

Получаем в итоге 8043 пикселя по оси у. .
А бедный проц, должен всё это дело обрабатывать. :p

sergwizard
17.01.2004, 23:57
Так что, нет логичных объяснений? :p

Nickoledion
19.01.2004, 09:58
Оригинал написал(а) sergwizard
Так что, нет логичных объяснений? :p

По работе нужно

PS А вообще, конечно, я сразу написал - чтоб не спрашивали. Что за зря разговоры говорить. :rolleyes:

sergwizard
20.01.2004, 04:52
Вот-вот, это самые расхожие "логичные" объяснения, - "по работе нужно" и "клиент так хочет". :D

Nickoledion
20.01.2004, 11:00
Оригинал написал(а) sergwizard
Вот-вот, это самые расхожие "логичные" объяснения, - "по работе нужно" и "клиент так хочет". :D

и???