Создаем зажигалку

Content on this page requires a newer version of Adobe Flash Player.

Информация
Название: 
Создаем зажигалку
Автор: 
Шевченко Борис (Neirol)
Формат видео: 
avi
Продолжительность: 
10 минут
Размер: 
27,4 МБ

В этом уроке вы научитесь создавать что-то наподобии зажигалки, огонь которой будет создан программным способном. Только не злоупотребляйте им

Исходник: 

Похожие записи

Комментарии

Аватар пользователя sashaoff

супер :) прикольно :)

Аватар пользователя Niter43

Круть респект автору!

yahoo

Всё сделал только ошибочку с анимацией не большую зделал..... 

ag

И вместол огня сделал звездочки))))

Аватар пользователя funbiscuit

Не хотелось бы говорить плохого, но уж больно это все похоже на это:
/flashlearn/flatexttutorials/538-razvodim-koster-bez-spichek

-i-zazhigalok-ili-kak.html
И где написано кто автор?

Аватар пользователя Neirol

originalg
Немножко эффект отличается - это раз.
Автор я (сейчас добавлю) - это два.
И все таки формат урока тоже сильно отличается.

Написал программу? Проверь на ошибки. Исправил ошибки? Проверь еще раз. Нет ошибок? Ты плохой программист!<br /><br />https://prograph.ru/ - видео уроки по программированию в разных средах, а также справочники, программы и новости.<br />

Аватар пользователя switcher

Neirol: "Только не злоупотребляйте им"
Золотые слова ))
 
Твой проект во FlashPlayer за две минуты неприрывного "прожига" - "прожег" у меня 7 метров с небольшим. При этом в арифметической прогрессии росла нагрузка на процессор. А представьте, если кто-то захочет использовать это у себя в проекте, например - во flash-сайте.
Очень надеюсь, что у посетителей этого сайта много ОЗУ и мощный процессор.

smile

Как думаешь почему ? )))
 
P.S. кстати, спасибо. Давно хотел увидеть практические результаты тестов с подобными недочетами. Да все руки не доходили. А тут и готовая работа подвернулась.

<i>Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете</i><br /><b>Стив Макконнел. &quot;Совершенный код&quot;</b>

Аватар пользователя vitkuz

В проекте допущена ошибка, которая и ест память.

Добавляя клипы на сцену, ты их не удаляешь по достижению нулевой прозрачности. А надо! Потому что в итоге получается огромное количество прозрачных клипов, которые и грузят память.

Урок, речь - все супер! Далеко пойдешь! Молодец.

И последнее... Постарайся сделать так, чтобы минута видео весила метр, поиграй с настройками...

Аватар пользователя switcher

черт )))
он бы и сам догадался. Посидел,подумал - зато навсегда врезалось бы в память.
А с подсказкой это не интересно )))))

<i>Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете</i><br /><b>Стив Макконнел. &quot;Совершенный код&quot;</b>

Аватар пользователя Neirol

switcher - я это знал и до того, как писал урок.
Но пока не нашел решения этой проблемы.
removeChild на последнем фрейме не помогали.

vitkuz - хотелось бы узнать каким способом ты создаешь видео-уроки. Я записываю через Camtasia и сохраняю в формате avi, предварительно изменив разрешение видео.
Просто у тебя ведь там флеш-плеер свой.

Написал программу? Проверь на ошибки. Исправил ошибки? Проверь еще раз. Нет ошибок? Ты плохой программист!<br /><br />https://prograph.ru/ - видео уроки по программированию в разных средах, а также справочники, программы и новости.<br />

Аватар пользователя switcher

плохо, что знали и не указали предупреждение

smile

Класс Fire:
package
{
    import flash.events.Event;
   
    public class Fire extends FirePart
    {
        public function Fire(_x, _y)
        {
            x = _x + Math.random() * 5 - 3;
            y = _y + Math.random() * 5 - 3;
            alpha = Math.random() * 2 + 2;
            scaleX = scaleY = Math.random() * 2 + 1;
           
            addFrameScript(totalFrames - 1, func);
        }
       
        private function func():void
        {
            stop();
            addFrameScript(totalFrames - 1, null);
            parent.removeChild(this);
        }
    }
}

<i>Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете</i><br /><b>Стив Макконнел. &quot;Совершенный код&quot;</b>

Аватар пользователя Fly

Очень хорошие уроки, только научись, пожалуйста, сохранять в меньшем размере, например формат swf - он будет меньше, чем avi... А так по качеству одобряю, дикция у тебя лучше моей :)

1) Админ всегда прав
2) Если админ не прав, смотри пункт 1

Мы в контакте -

Аватар пользователя Neirol

switcher спасибо за пример, как раз таки из-за отсутствия parent мой флеш и ругался)
Fly это уже заметил vitkuz и я задал ему вопрос, каким способом сделать swf? Записываю через camtasia.

Написал программу? Проверь на ошибки. Исправил ошибки? Проверь еще раз. Нет ошибок? Ты плохой программист!<br /><br />https://prograph.ru/ - видео уроки по программированию в разных средах, а также справочники, программы и новости.<br />

Аватар пользователя switcher

как раз таки из-за отсутствия parent

smile

я даже не знаю, где в твоем коде можно было обратиться к parent  так, чтобы flash ругался на его отсутствие...
Если только в конструкторе, но в конструкторе употреблять parent, очевидно, что нельзя. По крайней мере, пока ребенок не добавлен в список отображения.
 
Мой пример работает?

<i>Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете</i><br /><b>Стив Макконнел. &quot;Совершенный код&quot;</b>

Аватар пользователя Neirol

Я имел ввиду что я просто removeChild использовал, без parent
Не проверял твой вариант, но проще parent.removeChild(this) добавить в последний кадр FirePart, вместо Stop.

Написал программу? Проверь на ошибки. Исправил ошибки? Проверь еще раз. Нет ошибок? Ты плохой программист!<br /><br />https://prograph.ru/ - видео уроки по программированию в разных средах, а также справочники, программы и новости.<br />

Аватар пользователя switcher

не проще, это не AS2. Вложенные мувиклипы в AS3 не могут иметь кода в кадрах.
 
И, кстати, вместо stop() - не есть праивльно. Удаление из списка отображение - не означает удаление объекта. GC еще нужно "проснуться" и, "почесав затылок", на очередной итерации "зачистки" попробовать удалить нигде не залинкованный объет. И то не все те, что имеются в приложении.
Так что рискуете - иметь несколько сотен, постоянно играющих клипов в "холостую" - достаточно длительное время.

<i>Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете</i><br /><b>Стив Макконнел. &quot;Совершенный код&quot;</b>

Аватар пользователя Neirol

Ясно. Спасибо, буду знать.

Написал программу? Проверь на ошибки. Исправил ошибки? Проверь еще раз. Нет ошибок? Ты плохой программист!<br /><br />https://prograph.ru/ - видео уроки по программированию в разных средах, а также справочники, программы и новости.<br />

Аватар пользователя funbiscuit

Neirol,
Я думаю стоит скачать конвертер avi->flv. flv будет тоже весить мало. Хотя тебе решать. Но формат avi явно не катит из-за большого размера.

Аватар пользователя Fly

Neirol,
В камтазии есть настройки, которые позволяют конвертировать в swf формат твоё видео.

1) Админ всегда прав
2) Если админ не прав, смотри пункт 1

Мы в контакте -

Аватар пользователя Neirol

Да, вот только видео получилось вообще размеро около 100 мб.

Написал программу? Проверь на ошибки. Исправил ошибки? Проверь еще раз. Нет ошибок? Ты плохой программист!<br /><br />https://prograph.ru/ - видео уроки по программированию в разных средах, а также справочники, программы и новости.<br />

Аватар пользователя Neirol

Проблему решил - нужно использовать JPEG Compression на 50% и все ОК.
switcher вложенных мувиклипов у меня там не было. На последнем кадре в общем нужно добавить stop(); и parent.removeChild(this).

Написал программу? Проверь на ошибки. Исправил ошибки? Проверь еще раз. Нет ошибок? Ты плохой программист!<br /><br />https://prograph.ru/ - видео уроки по программированию в разных средах, а также справочники, программы и новости.<br />

Аватар пользователя moskitos80

Такой вопрос:
- а  если файл скрипта должен будет лежать в другой папке, как тогда их состыковать?

Аватар пользователя Neirol

Относительно папки с проектом - никак. Можно только в папке с проектом, создать еще папки, и в них поместить скрипт, и через названия этих папок обращатся к скрипту.

Написал программу? Проверь на ошибки. Исправил ошибки? Проверь еще раз. Нет ошибок? Ты плохой программист!<br /><br />https://prograph.ru/ - видео уроки по программированию в разных средах, а также справочники, программы и новости.<br />

Аватар пользователя qwert

Спасибо огромное. 
такой вопорс: могу я делать так для увеличения площади горения:

if(placingFire)

{
for(var i:int=200;i<300;i=i+10){

var fire:Fire = new Fire(i, 200);
addChild(fire);

}

Аватар пользователя SjeniaS

qwert,

на скока я знаю, так (var fire:Fire = new Fire(i, 200);)  получится что огонь пойдет в точку i по x и в точку 200 по y, так как в параметрах функции (которая в классе) в параметрах получает значение X,Y(а это: mouseX,mouseY), по этому для написания этих строк, надо в параметрах функции(в классе), написать две переменные, к примеру они в функции будут названы a и b, тогда надобудет изменить строчку с размером, на эти две строки: scaleX=a;scaleY=b; и тогда шириной огонька станет переменная a, а высотой переменная b, тоесть код класса будет такой:

package{

import flash.events.Event;
import flash.display.MovieClip;

public class Fire extends MovieClip{

public function Fire(X,Y,a,b){
x = X+Math.random()*5-3;
y = Y+Math.random()*5-3;
alpha = Math.random()*2+2
scaleX = a;scaleY = b;
}
}

}

а код в самой проге соответственно: 
var peremennaua:Boolean=false;

stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown);
stage.addEventListener(MouseEvent.MOUSE_UP, mouseUp);
addEventListener(Event.ENTER_FRAME, enterFrame);

function mouseDown(e:MouseEvent)
{
peremennaua=true;
}
function mouseUp(e:MouseEvent)
{
peremennaua=false;
}
function enterFrame(e:Event)
{
if (peremennaua)
{
for(var i:int=0;i<5;i++){
var fire:Fire = new Fire(mouseX,mouseY,i, 5);
addChild(fire);
}
}
}

но так огонь будет оч большой, по этому делай значения ещё меньше)))

Аватар пользователя Turbina69

Автор можешь кинуть сюда код? просто у меня слегка не получается списать его с видео!

Аватар пользователя Fly
Цитата: Turbina69

Автор можешь кинуть сюда код? просто у меня слегка не получается списать его с видео!

вы можете скачать исходник

1) Админ всегда прав
2) Если админ не прав, смотри пункт 1

Мы в контакте -