![]() |
|
||||||||||
|
|||||
|
Регистрация: Jul 2007
Сообщений: 306
|
Значит задача состоит в том, чтобы сделать плавный ползунок( с помощью 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. |
|
|||||
|
Регистрация: Nov 2005
Адрес: UA
Сообщений: 326
|
и что?
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
telit, отредактируйте свой пост и оформите код тегами [code][/code].
|
|
|||||
|
Регистрация: Jul 2007
Сообщений: 306
|
и нужен ПЛАВНЫЙ ПОЛЗУНОК, а у меня только деревянный получается
![]() |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Я себе не очень хорошо представляю плавный ползунок. Это как? Ползунок, который за мышкой не успевает?
|
|
|||||
|
Регистрация: Jul 2007
Сообщений: 306
|
Плавный - это, чтобы значение (например громкости звука) изменялось по ходу движения а не тогда когда нажимаешь!!
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
И в чем проблема? Сделать drag?
|
|
|||||
|
Регистрация: Jul 2007
Сообщений: 306
|
сделать правильный драг причём чтобы его значение изменялось плавно ( Timer ) П.с стандартный компонент не предлагать
![]() |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Ну… ENTER_FRAME (либо Timer) в руки и простенькое уравнение типа x += (newX-x)/5…
|
|
|||||
|
Регистрация: Jul 2007
Сообщений: 306
|
не понимаю как это делается
dragger.addEventListener(MouseEvent.MOUSE_DOWN, onDown); ... private function onDown(event:MouseEvent):void { event.target.startdrag(false, _rectangle); //_rectangle задаем заранее } //это всё... а как вставить сюда onTimer, чтобы получать значения ползунка в ЕнтерФрайме |
![]() |
![]() |
Часовой пояс GMT +4, время: 16:54. |
|
|
« Предыдущая тема | Следующая тема » |
|
|