Delphi vs Macromedia Flash - возможно ли это? |
Здравствуйте, гость ( Вход | Регистрация )
Here You Can Support Our Work and .:LavTeaM:. Services |
Delphi vs Macromedia Flash - возможно ли это? |
2.03.2003 - 07:02
Сообщение
#1
|
|
The Faithful one Группа: Пользователи Пользователь №: 31 Сообщений: 93 Регистрация: 28.02.2003 Из: Toril --> Forgotten Realms --> Waterdeep Загружено: байт Скачано: байт Коэффициент: --- Спасибо сказали: 0 раз(а) |
Если вы уже не первый месяц (год, тысячелетие) бороздите просторы интернета,
то конечно знакомы с технологией "Macromedia Flash ™". Технология эта, прямо скажем, рулеззная. Еще бы - как еще можно в 400-килограммовый мультик вместить полторы минуты неплохой анимациии и прикольного звука. Сам я начал осваивать эту технологию не так давно... И сразу встал вопрос - А можно ли создать на Delphi свой Flash-проигрыватель? Сначала я пробовал искать в интернете, но на тот момент не нашел ничего. Тогда мы с приятелем решили сами докопаться до истины. О результатах моих раскопок читайте ниже! Итак, о Flash-технологии знают практически все. Но не те, кто работают со стандартной палитрой компонент Дельфи знают о возможности использования ActiveX Controls. Возможно, я устрою тотальный разбор ActiveX - но сейчас эта фишка пригодится нам, чтобы попробовать создать свой Flash-player! Интересно? Готов поспорить, мало кто из Ваших друзей способен на такое. НАМ ПОНАДОБИТСЯ: Delphi (версия не ниже 5) Умение работать мышкой Самое интересное - Macromedia Flash Editor нам не потребуется! НО! У Вас на компьютере должен быть установлен Plugin Internet Explorer'а для проигрывания Flash-роликов (раз уж вы в интернете, то наверняка, он у Вас есть). ПОДГОТОВКА СРЕДЫ: 1. Запускаем Delphi. 2. В разделе Registered Controls. 3. Жмем на кнопку Install и вежливо подтверждаем все, о чем нас спросят 4. Создаем ТУ САМУЮ ПРОБНУЮ ПРОГРАММУ - а результаты этой работы вы вставите куда захотите. РАЗРАБОТКА: а). Выбор компонент из палитры: нам понадобятся следующие компоненты - TrackBar, 3xButtons, OpenDialog, ShockWave Flash. б). Задаем properties: Для TShockWaveFlash: name=swf1 playing=false Для TOpenDialog'а: defaultext=*.swf filter=ShockWave Flash|*.swf Для TTimer'а: interval=1 Для кнопок: button1.caption:="Open" button2.caption:="Start" button3.caption:="Stop" в). Чуть не забыл, в разделе Uses.dcu: Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls, OleCtrls, ShockwaveFlashObjects_TLB, ExtCtrls;[/color] ОСНОВНОЙ КОД: 1. Для Button1'OnClick' if open1.Execute then begin //вызываем Диалог открытия файла swf1.Movie:=open1.FileName; //открываем SWF-файл trackbar1.Max:=swf1.TotalFrames; //Прорабатываем "перемотку".[/color] 2. Для Button2 swf1.play;[/color] 3. Логично предположить, что 'OnClick' swf1.stop;[/color] 4. В единственно возможном для Timer'а задаем, чтобы ползунок перемещался по мере воспроизведения файла (для наглядности): trackbar1.Position:=swf1.CurrentFrame; 5. Теперь в обработке 'OnChange' if swf1.IsPlaying=true then swf1.Stop; //Это делается, чтобы при перемещении ползунка остановить проигрывание. swf1.GotoFrame(trackbar1.position); //А здесь мы переходим к нужному кадру.[/color] ИТОГО: А что? все прекрасно работает... По всем вопросам: monk123@rol.ru MonK |
|
|
Гость_tem_* |
15.04.2003 - 18:11
Сообщение
#2
|
Гость |
cltkfk, но при изменении размеров окна размер изображения не меняется :-( (вернее объект размер меняет, а вот картинка - никак). что делать-то? посоветуйте.
з.ы. Delphi 6 |
|
|
16.04.2003 - 02:14
Сообщение
#3
|
|
The Faithful one Группа: Пользователи Пользователь №: 31 Сообщений: 93 Регистрация: 28.02.2003 Из: Toril --> Forgotten Realms --> Waterdeep Загружено: байт Скачано: байт Коэффициент: --- Спасибо сказали: 0 раз(а) |
Дублирую для всех ответ, посланный тебе на Е-мэйл...
Отлавливаете событие на изменении размеров окна - это вы должны уметь и в его обработчик вставляете: swf1.Repaint; swf1.Realign; swf1.Update; swf1.Refresh; у меня все работает - а эти 4 строчки я всегда использую для ПОЛНОЙ перерисовки какого-либо компонента. Работает безотказно... |
|
|
Текстовая версия | Сейчас: 29.03.2024 - 18:56 |