1. Для начала нам понадобится исходник, полученный в результате прошлого урока, если у Вас что - то не получилось, можно скачать исходник тут.
2. Из панели инструментов "компоненты" ("components") перетащим в нашу флешку ColorPicker и дважды Slider:
3. Для ColorPicker(а) присвоим имя cp, одному слайдеру - sizeSlider, а другому - opacitySlider. Так же стоит как - нибудь подписать их, чтобы было понятно, что один служит для изменения размера линии, а второй - для изменения прозрачности.
4. Теперь нужно установить максимальные и минимальные значения для слайдеров, указать их шаг и т.д.
opacitySlider должен иметь значения в диапазоне от 0 (полная прозрачность) до 1 (абсолютная непрозрачность), цена деления пусть будет = 0,1 , а минимальный шаг - 0, 05, при этом значение по умолчанию лучше поставить = 1 (полная непрозрачность). Установить эти параметры нужно в панели "параметры":
5. Теперь нужно привязать наши компоненты непосредственно к свойствам рисуемой линии, для этого в скрипте находим строчку :
this.graphics.lineStyle(12,0,1);
и заменяем ее на такую:
this.graphics.lineStyle(this.sizeSlider.value, this.cp.selectedColor, this.opacitySlider.value);
6. После строк
stage.addEventListener(MouseEvent.MOUSE_DOWN, startDrawing); //Если мышь нажата, начинает рисовать
stage.addEventListener(MouseEvent.MOUSE_MOVE, drawIt); // При движении мыши рисует линию
stage.addEventListener(MouseEvent.MOUSE_UP, stopDrawing); // Если мышь отпущена, прекращает рисовать
вставляем строчки:
this.cp.addEventListener(Event.CHANGE, changeLineStyle);
this.sizeSlider.addEventListener(Event.CHANGE, changeLineStyle);
this.opacitySlider.addEventListener(Event.CHANGE, changeLineStyle);
и в конце кода добавляем функцию "changeLineStyle" :
function changeLineStyle (event:Event) : void {
this.graphics.lineStyle(this.sizeSlider.value, this.cp.selectedColor, this.opacitySlider.value);
}
7. Итак, полный листинг скрипта выглядит теперь так:
// Переменная drawing будет определять, рисовать ли линию в данный момент.
var drawing:Boolean = false;
// Присвоим ролику события
stage.addEventListener(MouseEvent.MOUSE_DOWN, startDrawing); //Если мышь нажата, начинает рисовать
stage.addEventListener(MouseEvent.MOUSE_MOVE, drawIt); // При движении мыши рисует линию
stage.addEventListener(MouseEvent.MOUSE_UP, stopDrawing); // Если мышь отпущена, прекращает рисовать
this.cp.addEventListener(Event.CHANGE, changeLineStyle);
this.sizeSlider.addEventListener(Event.CHANGE, changeLineStyle);
this.opacitySlider.addEventListener(Event.CHANGE, changeLineStyle);
function startDrawing(event:MouseEvent):void{
this.graphics.lineStyle(this.sizeSlider.value, this.cp.selectedColor, this.opacitySlider.value); //Линия имеет ширину, прозрачность и цвет, равную положениям компонентов
this.graphics.moveTo( mouseX, mouseY);//Ставим "начало" линии в точку положения курсора
drawing = true;//Начинаем рисовать
}
function drawIt (event:MouseEvent){
if(drawing){//Проверка переменной drawing
this.graphics.lineTo(mouseX,mouseY);//Линия ведется к новой координате
}
}
function stopDrawing (event:MouseEvent) :void {
drawing = false;//Прекращаем рисовать
}
function changeLineStyle (event:Event) : void {
this.graphics.lineStyle(this.sizeSlider.value, this.cp.selectedColor, this.opacitySlider.value);//Линия меняет ширину, прозрачность и цвет, в зависимости от положения компонентов
}
8. Жмем Контр+Ентер и получаем приблизительно такой результат:
Если что- то не вышло, тут можно скачать исходник...
Комментариев нет:
Отправить комментарий