Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 03.07.2007, 22:30
telit вне форума Посмотреть профиль Отправить личное сообщение для telit Найти все сообщения от telit
  № 1  
Ответить с цитированием
telit
 
Аватар для telit

Регистрация: Jul 2007
Сообщений: 306
Attention startDrag() для плеера

Значит задача состоит в том, чтобы сделать плавный ползунок( с помощью Drag ), например для контроля уровня звука или pan.
Код:
....
        public function CoolPlayer(  ) {

            _volumeControl = new VolumeControl(  );
            _volumeControl.x = 45;
            _volumeControl.y = 68;
            addChild(_volumeControl);
            _volumeControl.addEventListener(Event.CHANGE, 
                                           onTransform);

            _panControl = new PanControl(  );
            _panControl.x = 164;
            _panControl.y = 68;
            addChild(_panControl);
            _panControl.addEventListener(Event.CHANGE,
                                        onTransform);
}
        
        public function onTransform(event:Event):void
        {
            // Get volume and pan data from controls
            // and apply to a new SoundTransform object
            _channel.soundTransform = new SoundTransform(
                                         _volumeControl.volume, 
                                         _panControl.pan);
        }

import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.filters.DropShadowFilter;
import flash.geom.Rectangle;

class VolumeControl extends Sprite {
    public var volume:Number = 1.0;
    
    public function VolumeControl(  )
    {
        addEventListener(MouseEvent.CLICK, onClick);
        draw(  );
    }
    
    public function onClick(event:MouseEvent):void
    {
        // When user clicks the bar, set the volume
        volume = event.localX / 100;
        draw(  );
        dispatchEvent(new Event(Event.CHANGE));
    }
    
    private function draw(  ):void {
        // Draw a bar and the current volume position
        graphics.beginFill(0xcccccc);
        graphics.drawRect(0, 0, 102, 16);
        graphics.endFill(  );
        
        graphics.beginFill(0x000000);
        graphics.drawRect(volume * 100, 0, 2, 16);
    }
}

class PanControl extends Sprite {
    public var pan:Number = 0;
    
    public function PanControl(  )
    {
        addEventListener(MouseEvent.CLICK, onClick);
        draw(  );
    }
    
    public function onClick(event:MouseEvent):void
    {
        // When the user clicks bar, set pan
        pan = event.localX / 50 - 1;
        draw(  );
        dispatchEvent(new Event(Event.CHANGE));
    }

    private function draw(  ):void {
        // Draw the bar and current pan position
        graphics.beginFill(0xcccccc);
        graphics.drawRect(0, 0, 102, 16);
        graphics.endFill(  );
        
        graphics.beginFill(0x000000);
        graphics.drawRect(50 + pan * 50, 0, 2, 16);
    }
}


Последний раз редактировалось telit; 03.07.2007 в 23:33.
Старый 03.07.2007, 23:29
Что такое хорошо? вне форума Посмотреть профиль Отправить личное сообщение для Что такое хорошо? Найти все сообщения от Что такое хорошо?
  № 2  
Ответить с цитированием
Что такое хорошо?
 
Аватар для Что такое хорошо?

Регистрация: Nov 2005
Адрес: UA
Сообщений: 326
и что?

Старый 03.07.2007, 23:30
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 3  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
telit, отредактируйте свой пост и оформите код тегами [code][/code].

Старый 03.07.2007, 23:32
telit вне форума Посмотреть профиль Отправить личное сообщение для telit Найти все сообщения от telit
  № 4  
Ответить с цитированием
telit
 
Аватар для telit

Регистрация: Jul 2007
Сообщений: 306
и нужен ПЛАВНЫЙ ПОЛЗУНОК, а у меня только деревянный получается

Старый 03.07.2007, 23:36
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 5  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Я себе не очень хорошо представляю плавный ползунок. Это как? Ползунок, который за мышкой не успевает?

Старый 03.07.2007, 23:51
telit вне форума Посмотреть профиль Отправить личное сообщение для telit Найти все сообщения от telit
  № 6  
Ответить с цитированием
telit
 
Аватар для telit

Регистрация: Jul 2007
Сообщений: 306
Плавный - это, чтобы значение (например громкости звука) изменялось по ходу движения а не тогда когда нажимаешь!!

Старый 04.07.2007, 00:00
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 7  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
И в чем проблема? Сделать drag?

Старый 04.07.2007, 00:17
telit вне форума Посмотреть профиль Отправить личное сообщение для telit Найти все сообщения от telit
  № 8  
Ответить с цитированием
telit
 
Аватар для telit

Регистрация: Jul 2007
Сообщений: 306
сделать правильный драг причём чтобы его значение изменялось плавно ( Timer ) П.с стандартный компонент не предлагать

Старый 04.07.2007, 00:40
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 9  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Ну… ENTER_FRAME (либо Timer) в руки и простенькое уравнение типа x += (newX-x)/5…

Старый 04.07.2007, 01:24
telit вне форума Посмотреть профиль Отправить личное сообщение для telit Найти все сообщения от telit
  № 10  
Ответить с цитированием
telit
 
Аватар для telit

Регистрация: Jul 2007
Сообщений: 306
не понимаю как это делается

dragger.addEventListener(MouseEvent.MOUSE_DOWN, onDown);
...
private function onDown(event:MouseEvent):void
{
event.target.startdrag(false, _rectangle); //_rectangle задаем заранее
}
//это всё... а как вставить сюда onTimer, чтобы получать значения ползунка в ЕнтерФрайме

Создать новую тему Ответ Часовой пояс GMT +4, время: 12:51.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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