Требуются рерайтеры

требуются рерайтеры на постоянную основу которые могут нормально рерайтить и не оставлять работу незаконченной цена за 1 к знаков 10 р для начала для связи скайп z-apolon
  • +1
  • 25 декабря 2011, 22:01
  • zbigvava
  • 1

ActionScript3: Кэширование анимации и ее проигрывание (blitting).

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


package cache2bmp
{
import ru.dijump.wonf.cache2bmp.*;

import flash.display.BitmapData;
import flash.display.MovieClip;
import flash.geom.Matrix;
import flash.geom.Rectangle;

public class CacheAsBitmap
{
    private var _sourceMovieClip:MovieClip;

    public function CacheAsBitmap():void
    {
        this._sourceMovieClip = new MovieClip();
    }

    public function cache(source:MovieClip):Vector.<CachedFrameModel>
    {
        //конечный материал будет состоять из массива простых объектов - кадров с 
        //необходимой информацией об выдираемом кадре
        //и его "оттиском" в виде BitmapData
        var clip:Vector.<CachedFrameModel> = new Vector.<CachedFrameModel>();
        this.sourceMovieClip = source;
        var totalFrames:int = sourceMovieClip.totalFrames;
        //перебираем все кадры и кэшим их в наш массив
        for (var i:int = 1; i <= totalFrames; i++)
        {
            sourceMovieClip.gotoAndStop(i);

            clip.push(cacheFrame(sourceMovieClip));
        }
        return clip;
    }

    private function cacheFrame(sourceMovieClip:MovieClip):CachedFrameModel
    {
        //сохраняем всю информацию о кадре
        var cachedFrame:CachedFrameModel = new CachedFrameModel();
        cachedFrame.width = sourceMovieClip.width;
        cachedFrame.height = sourceMovieClip.height;
        cachedFrame.x = sourceMovieClip.x;
        cachedFrame.y = sourceMovieClip.y;
        cachedFrame.numFrame = sourceMovieClip.currentFrame;
        //получаем прямоугольник, описанный вокруг изображения, с его размерами и 
        координатами в координатном пространстве
        //нашего мувклипа:
        var bounds:Rectangle = sourceMovieClip.getBounds(sourceMovieClip);
        //матрица геометрических трансформаций - отдельная тема для разговора, о ней 
        //можно почитать в эдабовских справочниках.
        //в данном случае она нам нужна, чтобы переместить отпечаток изображения в 
        //систему координат с началом в верхнем левом углу полученного
        // прямоугольника:
        var matrix:Matrix = new Matrix();
            matrix.translate(-bounds.x, -bounds.y);
        //Оччень тонкий и мутный момент. Если мы хотим чтобы пустые пространства были 
        //прозрачными, заливка битмапдаты
        //  ДОЛЖНА быть черной. Простая установка свойства transparent=true без этого 
        //не сработает.
        var bitmapData:BitmapData = new BitmapData(bounds.width,  bounds.height,true,0x000000);
        bitmapData.draw(sourceMovieClip, matrix);
        cachedFrame.bitmapData = bitmapData;
        return cachedFrame;
    }

    public function get sourceMovieClip():MovieClip
    {
        return _sourceMovieClip;
    }

    public function set sourceMovieClip(value:MovieClip):void
    {
        _sourceMovieClip = value;
    }
}
}



Вот как выглядит объект кадра:

package cache2bmp
{
import flash.display.BitmapData;

public class CachedFrameModel
{
    private var _bitmapData:BitmapData;
    private var _x:int;
    private var _y:int;
    private var _width:int;
    private var _height:int;
    private var _numFrame:int;
    private var _action:Function;
    private var _layer:String;
…

Гэттеры и сеттеры описывать не буду, ленивым можно сделать свойства публичными

Далее на очереди эмулятор мувклипа – проигрыватель нашей скэшированной анимации. Сами эдабовцы уверяют, что наибыстрейший способ вывода на экран – это свойство copyPixels() битмапдаты, и у нас нет оснований им не верить Вот что у нас должно получится (класс реализует необходимые для клипа органы управления, присущие MovieClip, которые я комментировать не буду – они элементарны.


package cache2bmp
{
import ru.dijump.wonf.cache2bmp.*;

import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.events.Event;
import flash.geom.Point;
import flash.geom.Rectangle;

public class CachedMovieClip extends Bitmap
{
    private var _clip:Vector.<CachedFrameModel>;
    private var _currentFrame:int;
    private var _totalFrame:int;
    private var _destinationPoint:Point;
    private var _areaRectangle:Rectangle;
    private var _clearRectangle:Rectangle;

    public function CachedMovieClip(width:int = 150, height:int = 150)
    {
        bitmapData = new BitmapData(width, height, true,0x000000);
        this.width = width;
        this.height = height;
        this._clip = new Vector.<CachedFrameModel>();
        this._destinationPoint = new Point();
        this._areaRectangle = new Rectangle();
        this._clearRectangle = new Rectangle(0, 0, width, height);
        this.currentFrame=1;
    }

    public function gotoAndStop(frame:int = 1):void
    {
        if (frame < 1)
        {
            frame = 1;
        }
        if (frame > totalFrame)
        {
            frame = totalFrame;
        }
        render(frame);
        this.currentFrame = frame;
        this.removeEventListener(Event.ENTER_FRAME, playEnterFrameHandler);
    }

    private function render(frame:int):void
    {
        // считываем данные с нашего объекта-снимка
        destinationPoint.x = clip[frame - 1].x;
        destinationPoint.y = clip[frame - 1].y;
        areaRectangle.width = clip[frame - 1].width;
        areaRectangle.height = clip[frame - 1].height;
        //Очень тонкий момент! Чтобы плеер не рендерил лишнюю муть, навроде очистки битмапдаты, лочим ее:
        bitmapData.lock();
        //Очищаем битмапдату от предыдущего изображения черной заливкой (это единственно верный путь):
        this.bitmapData.fillRect(_clearRectangle,0x000000);
        //рисуем новую картинку
        this.bitmapData.copyPixels(clip[frame - 1].bitmapData, areaRectangle, destinationPoint);
        //и позволяем вывести теперь ее на экран
        bitmapData.unlock();
    }

    public function gotoAndPlay(frame:int = 1):void
    {
        if (frame < 1)
        {
            frame = 1;
        }
        if (frame > totalFrame)
        {
            frame = totalFrame;
        }
        render(frame);
        this.currentFrame = frame;
        this.addEventListener(Event.ENTER_FRAME, playEnterFrameHandler);
    }

    public function play():void
    {
        this.addEventListener(Event.ENTER_FRAME, playEnterFrameHandler);
    }

    public function stop():void
    {
        this.removeEventListener(Event.ENTER_FRAME, playEnterFrameHandler);
    }


    public function get clip():Vector.<CachedFrameModel>
    {
        return _clip;
    }

    public function set clip(value:Vector.<CachedFrameModel>):void
    {
        _clip = value;
        this.totalFrame = value.length;
        this.currentFrame = 1;
        gotoAndStop(1);
    }

    public function get currentFrame():int
    {
        return _currentFrame;
    }

    public function set currentFrame(value:int):void
    {
        _currentFrame = value;
    }

    public function get totalFrame():int
    {
        return _totalFrame;
    }

    public function set totalFrame(value:int):void
    {
        _totalFrame = value;
    }

    public function get destinationPoint():Point
    {
        return _destinationPoint;
    }

    public function set destinationPoint(value:Point):void
    {
        _destinationPoint = value;
    }

    public function get areaRectangle():Rectangle
    {
        return _areaRectangle;
    }

    public function set areaRectangle(value:Rectangle):void
    {
        _areaRectangle = value;
    }

    private function playEnterFrameHandler(event:Event):void
    {
        if (currentFrame != totalFrame)
        {
            render(currentFrame);
            currentFrame++;
        }
        else
        {
            render(1);
            currentFrame = 1;
        }
    }
}
}


Вот, собственно, и все!

накрутить отзывы на free-lance.ru

Нужно накрутить отзывы на free-lance.ru
1 отзыв — 1$
возможны перекрёстные отзывы

пишите 206-190-500

Выполню чертежи

Выполню чертежи в AutoCad любой сложности.
Работа в различных графических редакторах.
Быстро, недорого, качественно.

Диззайн сайта

Друзья,
есть такое задание.

Сайт lyapko-applicator.ru сделан на Joomla 1.5.20 и существует практически без дизайна. Virtualmart там установлен, но нужно его как то красиво встроить в дизайн сайта.

Все возможные предложения рассматриваються
  • +1
  • 27 сентября 2010, 17:56
  • vasospb
  • 2

WebLancer.net устраивает беспредел на просторах интернета...

Наткнулся на очень занимательную статью про weblancer.net и историю одного из участников фрилинс-биржи…

( Читать дальше )
  • +1
  • 3 февраля 2010, 11:16
  • weboss
  • 2

Режим дня

Я типичная сова. Хотя, если надо, могу вставать и к 8 утра, и к 7.30. Но всё-таки продуктивнее всего мне работается по ночам, а вот после обеда моя трудовая активность минимальна.
Когда я начала заниматься фрилансом, организм взбунтовался и отказался просыпаться раньше 9-10 часов утра, а то и позже. Поэтому пришлось организовать свой рабочий график так, чтобы основная нагрузка приходилась на вечерние и ночные часы. В это время вполне реально набрать интересные заказы на биржах, а ещё потихоньку приучить заказчиков к тому, что на почту я отвечаю только во второй половине дня, вечером и очень поздним вечером. Спорить с организмом в ущерб собственной природе означает снижать свою эффективность как исполнителя.
Ещё фрилансеру очень важно хорошо высыпаться и полноценно питаться, но об этом мы поговорим в следующий раз.
  • +1
  • 15 января 2010, 15:36
  • boleyn
  • 6

Начинающий фрилансер

У меня высшее экономическое и лингвистическое образование и ни малейшего желания работать в офисе. Что такое офис, знаю не понаслышке. Поэтому и не хочу. Но висеть на шее у мужа всю жизнь — тоже перспектива не из приятных. Да ещё наседают все знакомые: или иди работай, или рожай детей, раз сидишь дома. В общем-то, кому какое дело… но всё же неприятно.
В каникулы я задумалась, а что я умею делать настолько хорошо, чтобы делать это за деньги, в удобное для меня время, а при этом получать удовольствие? Подумала, побродила по биржам фрилансеров, и поняла, что мне — сюда.
За неделю каникул я успела существенно подзаработать, два заказчика из пяти пожелали со мной сотрудничать напрямую, если им что-то понадобится. По-моему, неплохой результат. Конечно, были и отказы. Впрочем, согласись все, на чьи проекты я предлагала свои услуги, я бы зашилась и ничего не успела.
У супруга, тем временем, начались рабочие будни. Поэтому надо как-то организовать свою фриланс-работу, чтобы подстроиться под его график и успевать при этом ходить на свои курсы повышения квалификации, занятия в аспирантуре и просто встречаться с друзьями.
Поэтому буду писать о тех методах и приемах самоорганизации, которые внедряю, чтобы успевать больше, получать денег — ещё больше, а уставать — меньше.
  • +1
  • 11 января 2010, 14:43
  • boleyn
  • 7

Как построить свой заработок?!

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


( Читать дальше )
  • +1
  • 26 ноября 2009, 00:39
  • weboss
  • 2

Ищем программиста PHP на высокие нагрузки, Москва от 60 000 до 100 000 т.р.

Информацию о компании можно посмотреть на сайте www.ddestiny.ru

Собираемся запускать новые сложные как с игровой, так и с технической
точки зрения проекты.

Сама работа заключается в основном в следующем:

1. написание новых модулей для текущего проекта
mysql+php+nginx+sphinx+mongo+memcached+nodejs.
2. проектирование и разработка нового игрового проекта.

Есть возможность заниматься не только программированием, но
решением нетривиальных задач, участвовать в обсуждении игровых
механик, решать проблемы, а не задачи.

Кого мы ищем:
Необходимые навыки:
Опыт разработки на языке php
Хорошие знания html / js / css
Опыт проектирования баз данных MySQL
Желательно:
Опыт работы с высоконагруженными системами
Умение работать как в команде, так и индивидуально
Ответственность
Инициативность
Доброжелательность

Мы предлагаем:
•Интересные большие проекты, дружный коллектив, перспективы роста;
•Оформление по ТК РФ, оплата отпуска, больничного,
•Компенсация проезда иногородним.
•Заработная плата: оклад от 60 000 до 100 000 руб.
•Оборудованный офис 10 мин. пешком от м. «Дубровка» или «Автозаводская»
•Корпоративный транспорт от м.«Таганская»

Резюме, вопросы, предложения жду на почту osyachina@ddestiny.ru

Требуются авторы (копирайтеры, рерайтеры и переводчики)

Приглашаем к сотрудничеству квалифицированных авторов, студентов и всех желающих и имеющих успешный опыт в написании статей на любые темы.

Мы заинтересованы: 
— В опытных профессионалах;
— В выпускниках и студентах старших курсов ВУЗов, только начинающих свою карьеру;
— В квалифицированных авторах.

Мы предлагаем:
— еженедельную оплату за статьи (от 3 евро за статью);
— многомиллионную аудиторию читателей;
— свободный график работы.

Подробная информация на нашем сайте вавтор.ру

Требуется 3Д-Визуализатор на постоянную работу

В представительство светотехнической компании FAGERHULT (Швеция) требуется 3д-визуализатор для разработки проектов освещения: расчеты, визуализация.
Офис в Спб, полный рабочий день, официальное трудоустройство, дополнительная медицинская страховка.
Бесплатное обучение, работа в молодом коллективе.

Требования: обучаемость, ответственность, уверенный пользователь ПК,
знание 3DS Max, AutoCAD, базовый английский язык.

Резюме и примеры работ присылать на konstantin.batuev@fagerhult.ru

Для тех кто хочет научиться зарабатывать в сети!

Сайт о наиболее популярных способах заработка в сети интернет для начинающих и вебмастеров. Способы, виды, ресурсы о получении дохода в сети.
click-rabota.ucoz.com/

Написание скриптов

Написание скриптов любой сложности! Цены договорные

Разработка сайтов

Разработка сайтов любой сложности дёшего! Цена договорная

Требуется Верстальщик для форума IPB

Требуется Верстальщик для форума IPB

Оплата по договоренности

Skype: kzsasa0

Создание продвижение обслуживание сайтов

www.eckoline.ru

Московская обл., Щелковский р-н, г.Щелково, ул. Заречная, 96

Конт. тел. 8(496)562-93-63, 8(926)268-51-93, 8(926)262-29-49

mail: eckoline@bk.ru

Наша компания предлагает услуги:

— разработка сайта

— продвижение сайта

-техническая и информационная поддержка

— разработка логотипа

-перенос сайта на другой хостинг

— обслуживание серверов

-обслуживание компьютеров

-торговля расходными и комплектующими материалами для орг. техники

А так же выполняем монтажные работы по прокладке сети и установке сетевого оборудования

Требуются рерайтеры

Требуются рерайтеры на постоянное сотрудничество.
Требования:
— умение писать легко-читаемые тексты, гармонично вписывая ключевые слова;
— готовность работы с большими объемами текстов;
— доступность по icq или mail-агенту.
Материал для рерайта предоставлю или можете предложить свой, уже имеющийся, главное чтобы он соответствовал требованиям по длине текста и кол-ву вхождений ключевых слов. Уникальность текста 95-100% по advego. Просьба не беспокоить, если вы оцениваете свои услуги дороже 15 руб. за 1000 символов. Если вас заинтересует данное предложение — пишите на pskvitko@rambler.ru, с радостью отвечу.

СРОЧНО! Нужна программа на С++!

Задание:
Найти возможные пути для шахматной фигуры «слон» от одной клетки до другой в пределах шахматной доски. Определить кратчайшие.
Есть пример выполненной контрольной подобной, могу скинуть.
Пишите в асю 6345465
Оплата высокая!