Javascript-форум (https://javascript.ru/forum/)
-   Flash (https://javascript.ru/forum/flash-actionscript-program/)
-   -   ActionScript - как изменить значение soundbuftime? (https://javascript.ru/forum/flash-actionscript-program/24775-actionscript-kak-izmenit-znachenie-soundbuftime.html)

Маэстро 13.01.2012 17:57

ActionScript - как изменить значение soundbuftime?
 
Обращаюсь за помощью к специалистам по ActionScript (таковым не являюсь). У меня есть исходник маленького проигрывателя mp3-файлов (Adobe Flash Player). В нем автор не предусмотрел передачу параметра "buffer", которое определяет время от начала загрузки файла до момента его воспроизведения. Сказано только, что оно стоит по-умолчанию и равно 5 секунд. Как его изменить, точнее сбросить в ноль?
Здесь http://help.adobe.com/ru_RU/FlashPla...dia/Sound.html написано, что этим заправляет SoundLoaderContext.buffertime, которое по умолчанию составляет 1000 миллисекунд и может быть изменено.
Вопрос КАК и ГДЕ? У меня в исходнике такого нет. В других источниках пишут, что надо использовать soundbuftime или buffertime...
У себя в исходнике в описании class Button я вижу только вот эту строчку: var _soundbuftime:Number;
Если кто знает, как с этим параметром работать, прошу подсказать.

dmitriymar 13.01.2012 20:07

Цитата:

Сообщение от Маэстро
var _soundbuftime:Number

ну это просто переменная ,а как она дальше используется хрен его знает
Цитата:

Сообщение от Маэстро
class Button

а он экземпляр SoundLoaderContext?

devote 13.01.2012 20:19

Цитата:

Сообщение от dmitriymar
а он экземпляр SoundLoaderContext?

сомневаюсь, обычно данный метод свойствен Loader'у ну как я понимаю Sound имеет свой loader в нем и есть онный метод. Но это только предположение, лень проверять.

Маэстро 14.01.2012 12:58

Цитата:

Сообщение от dmitriymar (Сообщение 150249)
ну это просто переменная ,а как она дальше используется хрен его знает

Понятно, что переменная... Я и прошу примерчик её использования. Попробовал тупо объявить её так:
var _soundbuftime:Number = 0;
-не помогло.

Цитата:

Сообщение от dmitriymar (Сообщение 150249)
а он экземпляр SoundLoaderContext?

Та не знаю я иерархии классов в ActionScript... Но в одном документе прочитал вот такую интересную фразу:
На заметку: Хотя это свойство можно указать для объекта Button, в действительности оно является глобальным и его значение можно просто указать как _soundbuftime

dmitriymar 14.01.2012 13:18

Цитата:

Сообщение от Маэстро
Я и прошу примерчик её использования. Попробовал тупо объявить её так:

какой тебе пример,если это просто переменная и ты не знаешь подвязана она куда либо?
Цитата:

Сообщение от Маэстро
Хотя это свойство можно указать для объекта Button, в действительности оно является глобальным и его значение можно просто указать как _soundbuftime

определись у тебя это свойство или переменная.
var context:SoundLoaderContext = new SoundLoaderContext(3000,false);-установка буфера
http://flapps.ru/forum/topic3028.html

Маэстро 14.01.2012 14:44

Цитата:

Сообщение от dmitriymar (Сообщение 150475)
определись у тебя это свойство или переменная.

ууу... кажется мне сначала придется определиться совсем с другим вопросом...
На старости лет узнал, что суть объекта может меняться от версии к версии языка! В ActionScript 2.0 объект Sound это одно, а в ActionScript 3.0 - несколько другое. Нехорошо это как-то. Уж лучше бы сделали Sound2, как поступает Microsoft со своими COM-объектами.
Сейчас я имею исходный код плеера на ActionScript 2.0 и маленький компилятор кода ActionScript 2.0. Переходить на ActionScript 3.0?
Что показывает сравнительный анализ?
Конструктор объекта Sound:

ActionScript 2.0 mysound = new Sound();
если я правильно понял, конструктор не принимает никаких входных параметров.
http://help.adobe.com/en_US/AS2LCR/F...=00001523.html

ActionScript 3.0 public function Sound(stream:URLRequest = null, context:SoundLoaderContext = null)
обратите внимание, уже на этапе создания объекта Sound можно в качестве параметра передать объект SoundLoaderContext, с помощью которого указывается длина буфера загрузки файла mp3.

Далее смотрим методы - загрузчики звука:

ActionScript 2.0 public loadSound(url: String, isStreaming: Boolean) : Void
Интересен второй параметр. Он указывает, что загружаемый файл надо начинать проигрывать сразу при начале загрузки, а не дожидаться, пока файл закачается полностью. Однако, тут никак не указывается размер буфера загрузки.

ActionScript 3.0 public function load(stream:URLRequest, context:SoundLoaderContext = null):void
Если объект SoundLoaderContext не был передан при создании объекта Sound, то его можно передать вторым параметром при запуске метода load.

Ну а при создании объекта SoundLoaderContext можно в качестве параметра передать длину буфера 0.

Таким образом, с использованием объекта Sound в ActionScript 3.0 вроде бы всё понятно (теоретически). Но у меня ActionScript 2.0
Поэтому вопрос: можно ли в принципе в ActionScript 2.0 менять длину буфера загрузки файла? Складывается впечатление, что нельзя. Опровергнете?

И по ходу просьба. Может кто подскажет, где скачать простой (без наворотов) нетриальный компилятор ActionScript 3.0?
Сейчас я использую вот это http://www.mtasc.org

devote 14.01.2012 15:08

Цитата:

Сообщение от Маэстро
Складывается впечатление, что нельзя. Опровергнете?

Понятия не имею. AS2 не учил, ибо старо это. Пиши на AS3

Цитата:

Сообщение от Маэстро
И по ходу просьба. Может кто подскажет, где скачать простой (без наворотов) нетриальный компилятор ActionScript 3.0?

Хм... не видел у адоба триального компилятора. а качать тут:
http://www.adobe.com/cfusion/entitle....cfm?e=flexsdk

а вообще рекомендую FlashDevelop для написания и компиляции AS3 только не забудь скачать SDK по первой ссылке что я указал, во FlashDevelop нужно будет указать путь к папке с FlexSDK


Часовой пояс GMT +3, время: 05:27.