проекты     блоги     лицей


Обратите внимание: если для получения работы от вас требуют оплaтить cтрaxoвoй взнoc или внести какой-либо залог, знайте - это мошенники. Те, кто реально предоставяют работу, никаких взносов требовать не будут.

Flash-обои
О лицее
Автор урока: Шпаков Михаил [FreeBady]
Здравствуйте, в этом уроке я хочу рассказать, как создать динамические флэш-обои. Многие из вас видели в Winamp`е, как картинка на рабочем столе, заменялась на красивые эффекты.

Вспомнили? Для того, чтобы создать самому такое, нам потребуется Borland Delphi 7, Flash любой версии и немного терпения. В прикрепленном архиве есть необходимые библиотеки.
Итак, приступим...
Создадим новую папку. Назовем ее FlashDeskTop, скопируем туда папку LIBS из архива, и файлы DX_Utils.pas, DXOverlay_unit.pas, EffectSource_unit.pas, EffectSource_unit.dcu, DXOverlay_unit.dcu, DX_Utils.dcu.

Еще создадим простой рисунок fdtop.bmp (внимание — 24-битный), для нормальной работы приложения.

Откроем программу Delphi 7. Если у вас не установлен флэш-компонент в Делфи, то установим новый компонент ActiveX, для этого выберем меню Component -> Import ActiveX Control. Появится окно…
Нажмем кнопку Add, выбираем и устанавливаем файл FlDbg9c.ocx из архива.
Далее создадим новый проект:
Сразу сохраним все: форму я сохранил как mainForm.pas, сам проект как flash.dpr.

Затем установим директорию для наших дополнительных файлов:
Выберем вкладку Dirictories/Conditionals и в поле Search Path напишем libs.
Приступим к написанию кода, откроем панель кода mainForm, в строке usage напишем необходимые библиотеки, это будет выглядеть так:

unit mainForm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs,
ShockwaveFlashObjects_TLB, ExtCtrls, DXOverlay_unit, OleCtrls, Menus, ComCtrls,
StdCtrls, Buttons;
Добавим компонент OpenDialog, для этого выберем его из вкладки Dialogs:
Затем установим его на нашей форме:
Также вставим компонент таймера (Timer) из вкладки System.
Далее там, где у нас прописался OpenDialog1, в строке type допишем еще пару компонентов, получится вот так:

unit viewForm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms, Dialogs, ShockwaveFlashObjects_TLB, ExtCtrls, DXOverlay_unit,
OleCtrls, Menus, ComCtrls, optionForm, StdCtrls, Buttons;

type
TForm1 = class(TForm)
DXOverlay: TDXOverlay;
Timer1: TTimer;
Flash1: TShockwaveFlash;
OpenDialog1: TOpenDialog;
Объявим новые переменные:

var
Form1: TForm1;
bPlay: Boolean=False;
Flash1: TShockwaveFlash;
myTemp, myFlash: TBitmap;
f1Width, f1Height: Integer;
cpRect: TRect;
Идем дальше, добавим события для формы. Для этого выберем нашу форму Form1 в окне Object TreeView и вкладку Event в панели Object Inspector. Двойным щелчком в поле OnCreate мы создадим новую процедуру.
И в этой процедуре напишем код:

procedure TForm1.FormCreate(Sender: TObject);
begin
myFlash:=TBitmap.Create;
myTemp:=TBitmap.Create;
myFlash.LoadFromFile('fdtop.bmp');
Flash1.Free;
Flash1:=TShockwaveFlash.Create(Form1);
Flash1.Parent:=Form1;
Flash1.Width:=1000;
Flash1.Height:=1000;
Flash1.Top:=1000;
Flash1.Left:=1000;
end;
Таким же способом создадим процедуру OnPaint:

procedure TForm1.FormPaint(Sender: TObject);
begin
Flash1.Movie := 'c:\fd\chgPic.swf'; //укажем путь к начальному флэш клипу
DXOverlay:=TDXOverlay.Create(f1Width, f1Width, True);
DXOverlay.SetOverlayCKey($ffffffff, True);
f1Width:=1000;
f1Height:=f1Width;
myTemp.Width:=f1Width;
myTemp.Height:=f1Width;
myFlash.Width:=f1Width;
myFlash.Height:=f1Height;
myFlash.Canvas.Rectangle(0,0,f1Width,f1Height);
Form1.Hide;
Flash1.Visible:=False;
Flash1.Enabled:=False;
Timer1.Interval := 10; //интервал прорисовки экрана
Timer1.Enabled:=True;//запускаем наш таймер
end;
Выберем теперь Timer1, во вкладке Properties укажем свойство Enabled как False, чтобы он не начал сразу исполнять нашу функцию.

Затем во вкладке Events, опять же дважды щелкнем в поле OnTimer и создадим новую процедуру:

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Flash1.PaintTo(myTemp.Canvas, 0, 0);
//копируем содержимое флэш компонента в Bitmap
cpRect:=Bounds(0,0, f1Width, f1Height);
myFlash.Canvas.CopyRect(cpRect, myTemp.Canvas, cpRect);
DXOverlay.DrawImage(myFlash.ScanLine[0], f1Width*-3, nil);
//затем прорисовываем полученную картинку на экран.
end;
Теперь откроем код нашего проекта:
И в нем напишем такой код:

program flash;

uses
Forms,
winstuff_light,
Messages,
SysUtils,
Variants,
Classes,
Graphics,
Controls,
Dialogs,
ShockwaveFlashObjects_TLB,
mainForm in 'mainForm.pas' {Form1};

{$R flash.res} //Указаваем имя файла со значком

var Handle: THandle;
myColor: TColorDialog;
Flash1: TShockwaveFlash;
myFile: String='';
procedure Mproc(ItemIndex: Integer);
begin
//здесь в зависимости от выбора меню выполняем процедуры
case ItemIndex of
0: begin
Form1.OpenDialog1.Execute;
myFile:=Form1.OpenDialog1.FileName;
Form1.Flash1.Movie:=myFile;
end;


2: begin
myColor.Execute;
Form1.Flash1.BackgroundColor:=myColor.Color;
end;
4: begin
Form1.DXOverlay.Free;
Form1.Close;
end;
end;
end;


begin
myColor:=TColorDialog.Create(nil);
Handle:=CreateWindow('');
AddTrayIcon(Handle,'MNIcon','Flash DeskTop',
['Открыть файл','-','Выбрать фон','-','Exit'], Mproc);
//Добавляем значок в панель задач
Application.Initialize;
Application.CreateForm(TForm1, Form1);

Form1.Hide;
Application.Run;
DeleteTrayIcon;
end.
Далее нарисуем значок для панели задач, для этого откроем меню Tools, и щелкнем на Image Editor.

Откроется окно редактора изображений, создадим новый файл ресурса с расширением .res.
Затем появится новое меню Resource, щелкнем на него, выберем New Icon. Дальше появится окно с опциями, оставим все как есть — 32х32 16 colors.

Нарисуем значок для панели задач. Переименуем получившийся значок в MNICON, и сохраним наш файл как flash.res, в папке с проектом.

Должно получится, примерно так:
Сделаем небольшую флэш-анимацию для проверки нашей программы. Не забудьте прописать путь к flash-ролику. Во всяком случае, можно будет открыть другой документ. В архиве есть некоторые флэш-ролики для демонстрации.

Создадим анимацию с картинками, сначала будет видна одна картинка, она будет плавно исчезать, и за ней будет появляться другая. Я делал это во Flash СS3, но для этой флэш-презентации подойдет и 7-я версия программы.

Итак, запустим программу для создания flash-анимации, создадим новый файл ActionScript 2.0, в первом кадре напишем такой код:

picture1=true;
picture2=false;
TimeInterval=1000;
TimeChange=false;
myTime=2000;
attachMovie("pic"+Math.round(Math.random()*8+1), "pict1", 1);
//Здесь у меня число 8 – это количество клипов с картинками.
pict1._height=550;
pict1._x=275;
pict1._y=200;
attachMovie("pic"+Math.round(Math.random()*8+1), "pict2",0);
pict2._height=550;
pict2._x=275;
pict2._y=200;

stop();

onEnterFrame=function()
{
if(myTime<getTimer()){
if(picture1){
pict1._alpha--;
if(pict1._alpha<0){

pict2.swapDepths(1);
attachMovie("pic"+Math.round(Math.random()*8+1), "pict1", 0);
pict1._height=550;
pict1._x=275;
pict1._y=200;
TimeChange=true;
picture1=false;
picture2=true;
}
}
if(picture2){
pict2._alpha--;
if(pict2._alpha<0){
myTime=10000+getTimer();
pict1.swapDepths(1);
attachMovie("pic"+Math.round(Math.random()*8+1), "pict2", 0);
pict2._height=550;
pict2._x=275;
pict2._y=200;
TimeChange=true;
picture2=false;
picture1=true;
}
}
if(TimeChange) TimeInterval=5000;
myTime=TimeInterval+getTimer();
TimeInterval=1000;
TimeChange=false;
}

}
Далее создадим MovieClip, в которых будут картинки. Самое главное называть их pic1, pic2, pic3 и так далее.

И не забудьте поставить галочку Export for ActionScript:
Экспортируем в библиотеку картинки, и вставим их в наши MovieClip.

У меня 8 картинок, и в коде я указал это число:

attachMovie("pic"+Math.round(Math.random()*8+1), "pict1", 1);
pict1._height=550;
pict1._x=275;
pict1._y=200;
attachMovie("pic"+Math.round(Math.random()*8+1), "pict2",0);
Ну вот и все!..
Протестируем наш клип — все должно работать.

В архиве есть исходник, но для уменьшения размера, я удалил картинки.

Всем удачи!

Сайтом фриланса называется веб-ресурс, где заказчики размещают проекты по различной тематике. Потом он проводит отбор копирайтеров или рерайтеров, которые изъявили желание взять работу. Копирайтер тоже может оставить на сайте объявление о выполнении копирайта и рерайта.
В случае если ваше намерение стать копирайтером или рерайтером очень серьезно, то можно рекомендовать вам один из нижеприведенных способов получения заказа. Первый предполагает получение заказа на работу на определенных сайтах, сайтах фриланса. Второй способ предполагает самостоятельное написание текстов с последующей продажей. Реализуются статьи на специальных биржах контента. Оба способа имеют свои плюсы и минусы. Рассмотрим все аспекты подробнее.
Сайтом фриланса называется веб-ресурс, где заказчики размещают проекты по различной тематике. Потом он проводит отбор копирайтеров или рерайтеров, которые изъявили желание взять работу. Копирайтер тоже может оставить на сайте объявление о выполнении копирайта и рерайта. Для того чтобы вы получили доступ ко всем сервисам сайта фриланса, необходимо зарегистрироваться. Здесь необходимо точно указать все свои контактные данные. Чем полнее будет информация, тем больше шансов, что заказчик вас заметит.
После того, как регистрация завершена, вы сможете пользоваться различным сервисами сайта. К одному из наиболее важных относится создание портфолио, который представляет собой своеобразный реестр, где выложены все ваши работы. Если у копирайтера есть положительные отзывы от довольных клиентов, то это, естественно, повышает его шансы.
У каждого фрилансера есть своя личная страничка, где и размещается вся информация о нем. Также здесь есть разделы, где помещаются отзывы, портфолио, рейтинг. Каждый сайт фриланса формирует рейтинг копирайтеров по-своему. Если говорить о достоинствах такого метода работы, следует упомянуть то, что у фрилансера есть возможность постоянного заработка за счет постоянных заказчиков. Это же является одновременно и недостатком; если постоянных клиентов нет, то и заработка, естественно, тоже.
Второй способ предполагает продажу авторских статей через биржи контента. Здесь также необходимо зарегистрироваться. Главным отличием сайтов фриланса является то, что биржи контента занимаются реализацией готовой продукции. Главное отличие заключается в методах деятельности. Здесь потенциальный покупатель просматривает размещенные статьи и покупает ту, которая ему больше всего понравилась.
Если вы тверды в намерении стать копирайтером, не ждите, что прямо с первого дня к вам деньги потекут ручьем. Для начала надо немного поработать над выработкой стиля письма, а также необходимо зарекомендовать себя как грамотного автора. Даже если на первом этапе вам встретятся трудности, не отчаивайтесь, все новички прошли через это.
В период кризиса многие потеряли работу. А новую найти в условиях все того же кризиса нелегко. Но не надо отчаиваться. Если у вас есть неплохие навыки письма и средний уровень владения компьютером, то у вас есть реальный шанс попробовать себя на новом поприще фриланса. Фрилансом называется удаленная работа. К фрилансерам относится и большая группа копирайтеров, к которой вы запросто можете примкнуть. Копирайтеры занимаются написанием авторских текстов на заданную тему.
© Revolance, Фриланс работа и фрилансеры Регистрация | О проекте