2010-06-29 2 views
1

Я пытаюсь провести линии рядом друг с другом, но последняя строка из первой группы цветов принимает цвет от второй группы цветов до того, как будет назначен второй цвет. может кто-нибудь объяснить это?ActionScript LineStyle Изменение цвета преждевременно

function drawCorner() 
    { 
    var corner:Sprite = new Sprite(); 
    corner.graphics.beginFill(0x0, 1.0); 
    corner.graphics.drawRect(0, 0, 20, 20); 

    corner.graphics.lineStyle(0, 0x00FF00, 1.0);  
    corner.graphics.moveTo(1, 13); 
    corner.graphics.lineTo(13, 1); 
    corner.graphics.moveTo(6, 13); 
    corner.graphics.lineTo(13, 6); 
    corner.graphics.moveTo(11, 13); 
    corner.graphics.lineTo(13, 11); 

    corner.graphics.lineStyle(0, 0xFF00FF, 1.0);  
    corner.graphics.moveTo(0, 13); 
    corner.graphics.lineTo(13, 0); 
    corner.graphics.moveTo(5, 13); 
    corner.graphics.lineTo(13, 5); 
    corner.graphics.moveTo(10, 13); 
    corner.graphics.lineTo(13, 10); 

    corner.graphics.endFill(); 

    addChild(corner); 
    } 
+0

Похоже, что он должен работать. Попробуйте поместить каждый блок в свою собственную функцию, а затем посмотрите, что произойдет, когда вы вызываете em. –

+0

Я скопировал/вставлял ваш код в тестовый компонент, и он рисует как ожидалось: три зеленые диагональные линии с одной красной линией, смещенной на один пиксель с первой строки. Может быть, опубликовать некоторые из окружающего кода для получения дополнительных подсказок? –

+0

Я обновил свой код с помощью полной функции. если вы увеличите масштаб после его рисования, вы заметите, что кратчайшие строки внизу справа имеют один и тот же цвет. по крайней мере, они для меня. Я использую последнюю 10.1 флеш-плеер. – TheDarkIn1978

ответ

2

Хотя я не совсем уверен, почему это происходит, то это происходит из-за вашего размещения corner.graphics.endFill();

Поместите endFill вызов сразу же после того, как DrawRect и проблема будет решена.

+0

ahh! в самом деле. спасибо, что поняли это. – TheDarkIn1978

2

Вы также можете поместить

corner.graphics.moveTo(0, 13); 

, прежде чем изменить LineStyle.

+0

Вы правы. все это кажется немного противоречивым, хотя. даже если заканчивать заполнение до того, как изменения цвета линии немного смешны. я полагаю, что я вижу, что нет никакой реальной пользы от завершения заполнения последней функции, и это может сделать код более трудным для чтения, но я все еще чувствую, что подаю ошибку об этом. – TheDarkIn1978

Смежные вопросы