Все про него слышали ,но каким боком его юзать никто толком и не знает.
Говорю сразу ,что бы его освоить нужны начальные знания ООП на уровне инкапсуляции и наследования и средне уметь кодить
на Си или JS с опытом подключения сторонних классов.
Поэтому 90% говнокодеров отшиваются сразу,отальные потом.
Говнокодерами стают те,кто достиг этого уровня.
AS3 очень похож на JS,и если вы работали с DOM ,проблем с освоением у вас не возникнет.
Теперь давайте определимся с понятиями.
На флеш можно рисовать-тоесть использовать визуальный флеш редактор,можно склепать баннерок или ролик не написав ни единой строчки кода.
На флеш можно программировать используя язык ActionScript3.
Поэтому если вам нужен ролик,не парте мозги,ставте визуальный флеш-редактор и рисуйте наздоровье.
Если же вам нужна программа - курите ActionScript3.
ActionScript3 является языком ,не привязаным к какому нибудь конкретному
флеш редактору,и естественно в доке и в книжках по нему Вы не найдете инфы ,каким боком его вставлять
в конкретный флеш-редактор с его персональными мухами.
В этой статье я раскажу Вам про чистый кодинг для флеш на этом языке на опенсорсных инсрументах.
Начнем с установок необходимых программ и доки,закончим своим собственным флеш-плеером,будем смотреть на себя с веб камеры и общаться между флеш и яваскриптом.
Итак поехали ,качаем,ставим.
1 Редактор Notepad++
http://notepad-plus-plus.org/download/v6.1.2.html
2 Плагин NppExec к редактору ,он нам будет запускать компилятор.
Сначала инсталим редактор ,потом в его папку plugins заливаем файлы плагина,
потом перезапускаем редактор.В меню "плагины" появится NppExec
http://sourceforge.net/projects/npp-plugins/files/NppExec/
3 Опенсорсный компиллятор as3conpile с кучей еще полезных инструментов,качаем ,инсталим.
http://www.swftools.org/download.html
Все,у нас есть все необходимые программы.Хороши тем ,что не требуют дополнительно JAVA и NET Framework
Теперь дока по ActionScript3
Здесь официальный справочник Adobe на русском языке
http://help.adobe.com/ru_RU/FlashPlatform/...pt/3/index.html
В данном случае нас интересует пакет "flash.xxx.xxx" и все классы принадлежащие ему.
этот пакет классов является встроенным в FlashPlayer ,и требует только обьявления в нашем коде,
но физически эти классы располагать не нужно при компилляции,поэтому курим в основном их.
Есть еще книжка
ActionScript 3.0 Сборник рецептов. Джои Лотт. Деррон Шалл. Кейт Питерс.
Очень советую скачать и покурить.В отличии от справочника ,там все разжевано для новичков,
вплоть до того ,для чего необходим package {} в коде.
Пока все ,кому интересно,курим пока доку,ставим программы.
Продолжение следует в следующем посте.
Если что неясно-спрашивайте.
Спустя 19 минут, 2 секунды (19.05.2012 - 22:05) redreem написал(а):
+1
Спустя 1 минута, 38 секунд (19.05.2012 - 22:07) sharki написал(а):
Ну нотепад это хорошо, а flex builder 4 еще лучше, он от Adobe, имеются кряки и т.п.
А лучшая книга это "ActionScript 3.0 для Flash. Подробное руководство". Сначало идет легко, но потом надо вникать в суть.
Плюс ко всему AS3 расширяется Flex'ом, это как бы HTML+CSS, только на флеш, и следовательно кроссбраузерен Достаточно лаконичный и мультимедийный, от всяких анимаций до создания стрим потоков с веб камер.
А лучшая книга это "ActionScript 3.0 для Flash. Подробное руководство". Сначало идет легко, но потом надо вникать в суть.
Плюс ко всему AS3 расширяется Flex'ом, это как бы HTML+CSS, только на флеш, и следовательно кроссбраузерен Достаточно лаконичный и мультимедийный, от всяких анимаций до создания стрим потоков с веб камер.
Спустя 20 минут, 27 секунд (19.05.2012 - 22:27) bodja написал(а):
sharki
Можно качать тяжеленный билдер и не признаватся.
Можно иметь нотепад с js ,php,as и подключенный к серверам,тут удобство немного другое.
Каждому свое,тема была про опенсорс.
Можно качать тяжеленный билдер и не признаватся.
Можно иметь нотепад с js ,php,as и подключенный к серверам,тут удобство немного другое.
Каждому свое,тема была про опенсорс.
Цитата |
Плюс ко всему AS3 расширяется Flex'ом, это как бы HTML+CSS, только на флеш, и следовательно кроссбраузерен |
Чесно говоря непонял,что имелось ввиду.
Спустя 1 минута, 19 секунд (19.05.2012 - 22:29) sharki написал(а):
bodja
Вот как бы ты писал клиентские приложения на чистом AS3?)
Вот как бы ты писал клиентские приложения на чистом AS3?)
Спустя 1 час, 35 минут, 10 секунд (20.05.2012 - 00:04) sebastjan написал(а):
bodja
+
Начало положено.
Давай выливай что нибудь простенькое.
+
Начало положено.
Давай выливай что нибудь простенькое.
Спустя 45 минут, 57 секунд (20.05.2012 - 00:50) Семён написал(а):
AS3 - язык программирования
Flex - Framework основанный на AS3
---------
Чистый AS3 хорошо использовать для создания баннеров, мультипликаций и прочих простых конструкций
------
Flex хорошо использовать в интерактивных клиентских приложениях основанных уже на готовых компонентах.
Flex - Framework основанный на AS3
---------
Чистый AS3 хорошо использовать для создания баннеров, мультипликаций и прочих простых конструкций
------
Flex хорошо использовать в интерактивных клиентских приложениях основанных уже на готовых компонентах.
Спустя 17 часов, 46 минут, 49 секунд (20.05.2012 - 18:37) bodja написал(а):
Надеюсь проги поставили ,инфу покурили-поехали дальше.
Будем запускать свой первый флеш и выводить Hello World!
1 Делаем hello.html
Собственно мы просто располагаем флеш обьект на хтмл странице,чтобы дошло ИЕ вставлен тег embed,
поэтому размеры и swf файл не забываем правильно указывать дважды.Есть другие вариации обьявления обьекта,даже с помощью
JS DOM,я думаю мы попозже их рассмотрим.
2 Создаем в редакторе Hello.as c таким содержанием
Что мытут накалякали? :)
1 Импортировали главный класс MovieClip для отображения нашего флеша,наряду с ним есть класс Sprite который вы можете
часто встретить в примерах от Adobe ,отличается тем ,что не имеет событий по кадрам,тоесть как бы облегченная версия мувика,
считается что ест меньше ресурсов.
2 Импортировали класс TextField как контейнер для отображения текста.
3 Наследуем мувик в наш собственный класс Main
4 Вот здесь самое интересное public function Main() является конструктором нашего класса и должен иметь тоже название ,что и наш класс.
Начиная с этих строк и начнет работать наш код.
5 Дальше я думаю расказывать нет смысла,все и так ясно.
Итак ,у нас есть редактор,плагин для запуска компилятора через командную строку и вывода
результата в окно редактора ,ну и сам компиллятор.
Позже мы кратко рассмотрим еще три бесплатных компиллятора связаных с ActionScript.
Начнем с настройки компиллятора.Что он нам предлагает
Будем запускать свой первый флеш и выводить Hello World!
1 Делаем hello.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>hello</title>
<body>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
id="sample" width="320" height="240"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab">
<param name="movie" value="Hello.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#FFFFFF" />
<param name="allowScriptAccess" value="sameDomain" />
<embed src="Hello.swf" quality="high" bgcolor="#FFFFFF"
width="320" height="240" name="sample" align="middle"
play="true" loop="false" quality="high" allowScriptAccess="sameDomain"
type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com/go/getflashplayer">
</embed>
</object>
</body>
</html>
Собственно мы просто располагаем флеш обьект на хтмл странице,чтобы дошло ИЕ вставлен тег embed,
поэтому размеры и swf файл не забываем правильно указывать дважды.Есть другие вариации обьявления обьекта,даже с помощью
JS DOM,я думаю мы попозже их рассмотрим.
2 Создаем в редакторе Hello.as c таким содержанием
package {
import flash.display.MovieClip;
import flash.text.TextField;
public class Main extends MovieClip {
public function Main() {
var outputText = new TextField();
outputText.text = "Hello World!";
addChild(outputText);
}
}
}
Что мытут накалякали? :)
1 Импортировали главный класс MovieClip для отображения нашего флеша,наряду с ним есть класс Sprite который вы можете
часто встретить в примерах от Adobe ,отличается тем ,что не имеет событий по кадрам,тоесть как бы облегченная версия мувика,
считается что ест меньше ресурсов.
2 Импортировали класс TextField как контейнер для отображения текста.
3 Наследуем мувик в наш собственный класс Main
4 Вот здесь самое интересное public function Main() является конструктором нашего класса и должен иметь тоже название ,что и наш класс.
Начиная с этих строк и начнет работать наш код.
5 Дальше я думаю расказывать нет смысла,все и так ясно.
Итак ,у нас есть редактор,плагин для запуска компилятора через командную строку и вывода
результата в окно редактора ,ну и сам компиллятор.
Позже мы кратко рассмотрим еще три бесплатных компиллятора связаных с ActionScript.
Начнем с настройки компиллятора.Что он нам предлагает
Цитата |
-h , --help Print short help message and exit -V , --version Print version info and exit -v , --verbose Increase verbosity -q , --quiet Decrease verbosity -C , --cgi Output to stdout (for use in CGI environments) -R , --resolve Try to resolve undefined classes automatically. -D , --define <namespace::variable> Set a compile time variable (for doing conditional compilation) -X , --width Set target SWF width -Y , --height Set target SWF width -r , --rate Set target SWF framerate -M , --mainclass Set the name of the main class (extending flash.display.MovieClip) -l , --library <file> Include library file <file>. <file> can be an .abc or .swf file. -I , --include <dir> Add additional include dir <dir>. -N , --local-with-network Make output file "local with networking" -L , --local-with-filesystem Make output file "local with filesystem" -T , --flashversion <num> Set target SWF flash version to <num>. -o , --output <filename> Set output file to <filename>. |
И что нам нужно.
-X ,фактическая ширина флеш обьекта
-Y ,фактическая высота флеш обьекта
-r ,количество кадров в секунду обновления отображения.
-M ,имя главного класса (по умолчанию главный класс flash.display.MovieClip ,еще в народе называют мувик.)
-N -L ,опции безопасности флеш плеера или файлы доступны только с интернета ,но недоступны локальные или наоборот.
-о имя выходного файла SWF,если не указываем ,у нас на выходе будет файл swf с тем же именем ,что исходник на as
Итого у на командная строка будет иметь такой вид
C:\Program Files\SWFTools\as3compile.exe C:\test\Hello.as -X 320 -Y 240
Указываем путь к компиллятору ,путь к исходнику и размеры.
Теперь вставляем это в плагин.
Плагины>NppExec>Execute...>Save
Жмем Ок,
Если все в порядке,никаких ошибок не будет выведено в консоли
Ну и все... Hello.swf у нас готов в той же директории ,что и as файл.
Открываем в браузере Hello.html видим наш Hello World!
Кричим громкое УРА!!!
Продолжение следует,будем делать плеер.
Если что не получилось с компилляцией - пишите,разберемся.
Спустя 3 минуты, 21 секунда (20.05.2012 - 18:40) bodja написал(а):
Цитата (sharki @ 19.05.2012 - 19:29) |
bodja Вот как бы ты писал клиентские приложения на чистом AS3?) |
Начало положено,а там посмотрим.
Спустя 2 дня, 15 часов, 58 минут, 35 секунд (23.05.2012 - 10:38) sebastjan написал(а):
bodja
Давай тему про плеер не забрасывай.
Актуальная штуковина.
Может сразу вместе с темой плеер+использование XMLHTTPRequest чтоб без перезагрузки плеер висел.
Давай тему про плеер не забрасывай.
Актуальная штуковина.
Может сразу вместе с темой плеер+использование XMLHTTPRequest чтоб без перезагрузки плеер висел.
Спустя 10 часов, 1 минута, 52 секунды (23.05.2012 - 20:40) bodja написал(а):
sebastjan
Ну как то глубокого интереса не заметно,наверное всех распугал.
Оно и понятно ,гораздо проще написать alert('Hello World!') или echo 'Hello World!'
и не мучатся с какими то неизвестными компиллерами ,обьектами и классами :)
Ну ,что ж ,теперь для самых стойких покажем 1% мощи этого языка.
Делаем плеер.
Итак поехали. :D
Уже приехали :D :D :D
Вот и все.Размер swf 596 байт.Вот так вот...Делайте выводы.
Сохраняем как Player.as ,компилим вот такой строкой.
C:\Program Files\SWFTools\as3compile.exe C:\test\Player.as -X 320 -Y 240 -N
или такой
C:\Program Files\SWFTools\as3compile.exe C:\test\Player.as -X 320 -Y 240 -L
Еще нужен файл видео с названием sample.flv
HTML
Напомню ,что наш флеш использует внешние файлы для загрузки ,поэтому нам нужно указать
компиллятору опции -L(для локальных файлов) или -N(для файлов с инета),что бы потом не удивлятся почему
на компе работает ,а на сайте нет или наоборот.
Итак ,что мы накалякали в коде?
1 Указали видеофайл flv,открыли соединение connection,открыли стрим для потока видео и создали обьект Video для
отображения.
2 Что у нас делают функции?
VideoExample - открывает соединение и назначает событие в случае успешного\неуспешного соединения.
netStatusHandler-функция назначеного события ,разруливает продолжать дальше или передать код на отладочную информацию.
connectStream-при успешном соединении ,открывает поток,назначает его обьекту video,располагает на экране ,ну и сразу play.
Здесь конечно мы расмотрели простейший плеер ,без кнопочек и рюшечек - это я сделал не случайно,во первых просто.
Во вторых если будет итерес ,покажу как мы кнопочки управления будем разполагать не в плеере ,а на ХТМЛ странице и управлять им через яваскрипт.
Ну а теперь делаем плеер специально для sebastjan :D ,с рекламной вставкой.
Плеер у нас будет не простой ,а золотой.Ну а если серьезно ,он нам будет рекламу посреди видео показывать не просто текстом ,а полноценным роликом.
Тоесть делаем рисуем баннер-ролик в редакторе ,а потом мы его будем проигрывать вместе с видеофайлом.
Поехали...
Сохраняем как PlayerSWF.as ,компилим вот такой строкой.
C:\Program Files\SWFTools\as3compile.exe C:\test\PlayerSWF.as -X 320 -Y 240 -N
или такой
C:\Program Files\SWFTools\as3compile.exe C:\test\PlayerSWF.as -X 320 -Y 240 -L
Еще нужны файлы видео с названием sample.flv,и ролик n9.swf.
HTML
Что ,мы здесь намутили?
В принципе ,тоже что и в предыдущем примере,но добавили два таймера и загрузчик для swf файла нашего рекламного ролика.
Первый таймер нам дает задержку в 2сек после того как начнет проигрыватся видео ,второй через 6сек этот ролик уберет из отображения.
Так как рекламный ролик у меня был большого размера ,я его немного приплюснул до размеров плеера кодом.
Ну как то глубокого интереса не заметно,наверное всех распугал.
Оно и понятно ,гораздо проще написать alert('Hello World!') или echo 'Hello World!'
и не мучатся с какими то неизвестными компиллерами ,обьектами и классами :)
Ну ,что ж ,теперь для самых стойких покажем 1% мощи этого языка.
Делаем плеер.
Итак поехали. :D
package {
import flash.display.MovieClip;
import flash.events.NetStatusEvent;
import flash.media.Video;
import flash.net.NetConnection;
import flash.net.NetStream;
public class VideoExample extends MovieClip {
var videoURL = "sample.flv";
var connection;
var stream;
var video = new Video(320,240);
public function VideoExample() {
connection = new NetConnection();
connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
connection.connect(null);
}
private function netStatusHandler(event) {
switch (event.info.code) {
case "NetConnection.Connect.Success":
connectStream();
break;
case "NetStream.Play.StreamNotFound":
//trace("Unable to locate video: " + videoURL);
break;
}
}
private function connectStream() {
stream = new NetStream(connection);
video.attachNetStream(stream);
addChild(video);
stream.play(videoURL);
}
}
}
Уже приехали :D :D :D
Вот и все.Размер swf 596 байт.Вот так вот...Делайте выводы.
Сохраняем как Player.as ,компилим вот такой строкой.
C:\Program Files\SWFTools\as3compile.exe C:\test\Player.as -X 320 -Y 240 -N
или такой
C:\Program Files\SWFTools\as3compile.exe C:\test\Player.as -X 320 -Y 240 -L
Еще нужен файл видео с названием sample.flv
HTML
Свернутый текст
<html>
<body>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
id="sample" width="320" height="240"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab">
<param name="movie" value="Player.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#FFFFFF" />
<param name="allowScriptAccess" value="always" />
<embed src="Player.swf" quality="high" bgcolor="#FFFFFF"
width="320" height="240" name="sample" align="middle"
play="true" loop="false" quality="high" allowScriptAccess="always"
type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com/go/getflashplayer">
</embed>
</object>
</body>
</html>
<body>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
id="sample" width="320" height="240"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab">
<param name="movie" value="Player.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#FFFFFF" />
<param name="allowScriptAccess" value="always" />
<embed src="Player.swf" quality="high" bgcolor="#FFFFFF"
width="320" height="240" name="sample" align="middle"
play="true" loop="false" quality="high" allowScriptAccess="always"
type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com/go/getflashplayer">
</embed>
</object>
</body>
</html>
Напомню ,что наш флеш использует внешние файлы для загрузки ,поэтому нам нужно указать
компиллятору опции -L(для локальных файлов) или -N(для файлов с инета),что бы потом не удивлятся почему
на компе работает ,а на сайте нет или наоборот.
Итак ,что мы накалякали в коде?
1 Указали видеофайл flv,открыли соединение connection,открыли стрим для потока видео и создали обьект Video для
отображения.
2 Что у нас делают функции?
VideoExample - открывает соединение и назначает событие в случае успешного\неуспешного соединения.
netStatusHandler-функция назначеного события ,разруливает продолжать дальше или передать код на отладочную информацию.
connectStream-при успешном соединении ,открывает поток,назначает его обьекту video,располагает на экране ,ну и сразу play.
Здесь конечно мы расмотрели простейший плеер ,без кнопочек и рюшечек - это я сделал не случайно,во первых просто.
Во вторых если будет итерес ,покажу как мы кнопочки управления будем разполагать не в плеере ,а на ХТМЛ странице и управлять им через яваскрипт.
Ну а теперь делаем плеер специально для sebastjan :D ,с рекламной вставкой.
Плеер у нас будет не простой ,а золотой.Ну а если серьезно ,он нам будет рекламу посреди видео показывать не просто текстом ,а полноценным роликом.
Тоесть делаем рисуем баннер-ролик в редакторе ,а потом мы его будем проигрывать вместе с видеофайлом.
Поехали...
package
{
import flash.display.Loader;
import flash.display.MovieClip;
import flash.events.*;
import flash.net.URLRequest;
import flash.media.Video;
import flash.net.NetConnection;
import flash.net.NetStream;
import flash.utils.Timer
import flash.events.TimerEvent;
public class PlayerSWF extends MovieClip {
var url_swf='n9.swf';
var url_video = "sample.flv";
var connection = new NetConnection();
var stream;
var loader = new Loader();
var video = new Video(320,240);
var timer1 = new Timer(2000,1);
var timer2 = new Timer(6000,1);
public function PlayerSWF() {
connection.addEventListener(NetStatusEvent.NET_STATUS, connectComplete);
connection.connect(null);
}
private function connectComplete(event) {
stream = new NetStream(connection);
video.attachNetStream(stream);
addChild(video);
stream.play(url_video);
timer1.addEventListener(TimerEvent.TIMER, addSWF);
timer1.start();
}
function addSWF(event) {
loader.load(new URLRequest(url_swf));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,loaderComplete);
}
function loaderComplete(event) {
loader.width=320;
loader.height=240;
addChild(loader);
timer2.addEventListener(TimerEvent.TIMER, removeSWF);
timer2.start();
}
function removeSWF(event) {
removeChild(loader);
}
}
}
Сохраняем как PlayerSWF.as ,компилим вот такой строкой.
C:\Program Files\SWFTools\as3compile.exe C:\test\PlayerSWF.as -X 320 -Y 240 -N
или такой
C:\Program Files\SWFTools\as3compile.exe C:\test\PlayerSWF.as -X 320 -Y 240 -L
Еще нужны файлы видео с названием sample.flv,и ролик n9.swf.
HTML
Свернутый текст
<html>
<body>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
id="sample" width="320" height="240"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab">
<param name="movie" value="PlayerSWF.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#eeeeee" />
<param name="allowScriptAccess" value="always" />
<embed src="PlayerSWF.swf" quality="high" bgcolor="#eeeeee"
width="320" height="240" name="sample" align="middle"
play="true" loop="false" quality="high" allowScriptAccess="always"
type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com/go/getflashplayer">
</embed>
</object>
</body>
</html>
<body>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
id="sample" width="320" height="240"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab">
<param name="movie" value="PlayerSWF.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#eeeeee" />
<param name="allowScriptAccess" value="always" />
<embed src="PlayerSWF.swf" quality="high" bgcolor="#eeeeee"
width="320" height="240" name="sample" align="middle"
play="true" loop="false" quality="high" allowScriptAccess="always"
type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com/go/getflashplayer">
</embed>
</object>
</body>
</html>
Что ,мы здесь намутили?
В принципе ,тоже что и в предыдущем примере,но добавили два таймера и загрузчик для swf файла нашего рекламного ролика.
Первый таймер нам дает задержку в 2сек после того как начнет проигрыватся видео ,второй через 6сек этот ролик уберет из отображения.
Так как рекламный ролик у меня был большого размера ,я его немного приплюснул до размеров плеера кодом.
Цитата |
loader.width=320; loader.height=240; |
Так что с sebastjan ящик немецкого пива. :D
Понятно ,что языку я вас научить я не смогу,но как научится подскажу.
Я выше давал ссылку на справочник Adobe ,смотрим описание пакетов ,потом выбираем какие классы нам нужны для работы по их описанию.
Начинаем курить класс ,практически для каждого класса есть примеры в конце страницы,если видите пример с package можете просто вставлять в редактор и пробовать пример в действии.
Как правило все идет с полутыка.Единственное не забываем ,там примеры идут часто с главным классом Sprite ,а у компиллятора по умолчанию MovieClip,
тогда просто добавляем ему опцию -M flash.display.Sprite
Примеры в действии пока можно посмотреть здесь
плеер
плеер с рекламой
Спустя 11 часов, 18 секунд (24.05.2012 - 07:41) redreem написал(а):
bodja
я жду выходных например, и буду штудировать
я жду выходных например, и буду штудировать
Спустя 6 часов, 58 минут, 18 секунд (24.05.2012 - 14:39) sebastjan написал(а):
bodja
Спасибо, офигительно, +++
Буду курить.
Только у меня ссылка с плеером где дожна быть реклама , без рекламы почему то.
Спасибо, офигительно, +++
Буду курить.
Только у меня ссылка с плеером где дожна быть реклама , без рекламы почему то.
Спустя 9 часов, 1 минута, 39 секунд (24.05.2012 - 23:41) bodja написал(а):
Пардон за последний пример.
Вчера инет сильно лагал ,небыло воможности нормально проверить.
Локально он работает ,с инета нет.
Вот подправленный код,пришлось пойти на небольшую хитрость из за загрузки AS2 в AS3.
Все остальное тоже.
Подправленый пример там же
Вчера инет сильно лагал ,небыло воможности нормально проверить.
Локально он работает ,с инета нет.
Вот подправленный код,пришлось пойти на небольшую хитрость из за загрузки AS2 в AS3.
package {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.utils.*;
import flash.media.Video;
public class VideoExample extends MovieClip {
var url_swf='n9.swf';
var url_video = "sample.flv";
var connection = new NetConnection();
var stream;
var ldr = new Loader();
var rect = new Shape();
var video = new Video(640,480);
public function VideoExample() {
connection.addEventListener(NetStatusEvent.NET_STATUS, connectComplete);
connection.connect(null);
}
private function connectComplete(event) {
stream = new NetStream(connection);
video.attachNetStream(stream);
addChild(video);
stream.play(url_video);
setTimeout(startSWF, 3000);
}
private function startSWF() {
rect.graphics.beginFill(0xFFFF);
rect.graphics.drawRect(0, 0, 640, 480);
rect.graphics.endFill();
addChild(rect);
ldr.mask = rect;
var urlReq = new URLRequest(url_swf);
ldr.load(urlReq);
addChild(ldr);
setTimeout(stopSWF, 6000);
}
private function stopSWF() {
removeChild(ldr);
}
}
}
Все остальное тоже.
Подправленый пример там же
Спустя 19 дней, 13 часов, 26 минут (14.06.2012 - 13:07) Invis1ble написал(а):
bodja
У меня не получается завести первый пример из этого поста. В консоли хрома ошибок нет, компилится с варнингом, но я так понял, что в коде все норм
У меня не получается завести первый пример из этого поста. В консоли хрома ошибок нет, компилится с варнингом, но я так понял, что в коде все норм
Цитата |
"C:\Program Files (x86)\SWFTools\as3compile.exe" "C:\apache\test\www\media\as\Player.as" -o "C:\apache\test\www\media\swf\Player.swf" -X 360 -Y 288 -L Process started >>> C:\apache\test\www\media\as\Player.as:16:45: warning: Couldn't resolve 'NetStatusEvent', doing late binding <<< Process finished. ================ READY ================ |
/media/as/Player.as
package {
import flash.display.MovieClip;
import flash.text.TextField;
import flash.media.Video;
import flash.net.NetConnection;
import flash.net.NetStream;
public class VideoExample extends MovieClip {
var videoURL = "sample.flv";
var connection;
var stream;
var video = new Video(360, 288);
public function VideoExample() {
connection = new NetConnection();
connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
connection.connect(null);
}
private function netStatusHandler(event) {
switch (event.info.code) {
case "NetConnection.Connect.Success" :
connectStream();
break;
case "NetStream.Play.StreamNotFound" :
trace("Unable to locate video: " + videoURL);
break;
}
}
private function connectStream() {
stream = new NetStream(connection);
video.attachNetStream(stream);
addChild(video);
stream.play(videoURL);
}
}
}
/index.php
<!DOCTYPE html>
<html>
<body>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
id="sample" width="360" height="288"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab">
<param name="movie" value="/media/swf/Player.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#FFFFFF" />
<param name="allowScriptAccess" value="always" />
<embed src="/media/swf/Player.swf" quality="high" bgcolor="#FFFFFF"
width="360" height="288" name="sample" align="middle"
play="true" loop="false" quality="high" allowScriptAccess="always"
type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com/go/getflashplayer">
</embed>
</object>
</body>
</html>
ролик скачал тут, Windy 50s Mobility Scooter Race (первый который), переименовал в sample.flv и положил в корень. При обращении к index.php тупо ничего не происходит.
Спустя 20 минут, 14 секунд (14.06.2012 - 13:27) killer8080 написал(а):
Invis1ble
кажется ты пропустил
кажется ты пропустил
import flash.events.NetStatusEvent;
Спустя 4 минуты, 48 секунд (14.06.2012 - 13:32) Invis1ble написал(а):
killer8080
точняк, спасибо все работает, вонинг при компиляции пропал.
невнимательность - злая штука...
Спустя 7 минут, 4 секунды Invis1ble написал(а):
У меня теперь вот такой вопрос возник: имеет ли смысл учить флэш? Если не ошибаюсь, где-то читал, что его поддержка сворачивается . Ну и учитывая HTML5 с его фичами...
точняк, спасибо все работает, вонинг при компиляции пропал.
невнимательность - злая штука...
Спустя 7 минут, 4 секунды Invis1ble написал(а):
У меня теперь вот такой вопрос возник: имеет ли смысл учить флэш? Если не ошибаюсь, где-то читал, что его поддержка сворачивается . Ну и учитывая HTML5 с его фичами...
Спустя 1 час, 42 минуты, 56 секунд (14.06.2012 - 15:15) killer8080 написал(а):
Цитата (Invis1ble @ 14.06.2012 - 13:32) |
Если не ошибаюсь, где-то читал, что его поддержка сворачивается. Ну и учитывая HTML5 с его фичами.. |
Думаю что стоит. HTML5 и половины не может того, что может флеш. Да и сырой он пока.
Спустя 1 час, 19 минут, 15 секунд (14.06.2012 - 16:34) bodja написал(а):
Invis1ble
import flash.events.*;
Должен был импортировать все классы этого пакета,хотя не исключаю ,что могут быть варианты ,что необходимо явно указать класс.
import flash.events.*;
Должен был импортировать все классы этого пакета,хотя не исключаю ,что могут быть варианты ,что необходимо явно указать класс.
Цитата |
У меня теперь вот такой вопрос возник: имеет ли смысл учить флэш? Если не ошибаюсь, где-то читал, что его поддержка сворачивается |
Думаю что все наоборот,сейчас идет поддержка флеш 10 на базе андроид в мобильных и планшетниках даже у китайцев, IOS сильно скрепя зубами потихоньку ее добавляет. ,в противном случае все перейдут на андроид послав подальше IOS.
HTML5 детский сад по сравнению с флеш,тем более сырой и опять будет куча кроссбраузерных костылей.
Бытует общее мнение ,что полностью на флеш пока нет смысла переходить ,но в качестве отдельных плагинов ,где флеш может себя проявить ,все таки стоит применять.
Теже плееры ,вебкамеры,отличная альтернатива canvas (слайдеры ,банеры),можно сделать классный аякс.
Хотя есть и успешные проекты ,взять фотострану например.
Спустя 47 минут, 55 секунд (14.06.2012 - 17:22) Invis1ble написал(а):
вобщем скачал Колин Мук ActionScriptCS3, буду пробовать
Спустя 2 месяца, 20 дней, 4 часа, 4 минуты, 27 секунд (4.09.2012 - 21:26) redreem написал(а):
к первому посту о первой компиляции следует добавить, что для плагина NppExec надо поставить галочку в его меню: Follow $(CURRENT_DIRECTORY). Иначе откомпилированный файл не будет сохраняться в той же директории, что и as.
Спустя 17 минут, 20 секунд (4.09.2012 - 21:44) bodja написал(а):
redreem
При условии ,если не будет указан его абсолютный путь.
ЗЫ Пытался поработать с перспективной проекцией,чето непашет у меня и немогу вкурить ,или это компиллер класса не видит ,или я опять чтото пропустил.
Буду пробовать еще Flash Develop на досуге.
При условии ,если не будет указан его абсолютный путь.
ЗЫ Пытался поработать с перспективной проекцией,чето непашет у меня и немогу вкурить ,или это компиллер класса не видит ,или я опять чтото пропустил.
Буду пробовать еще Flash Develop на досуге.
Спустя 7 минут, 51 секунда (4.09.2012 - 21:51) redreem написал(а):
bodja
пытаюсь сунуть пример внизу страницы отсюда: http://help.adobe.com/ru_RU/FlashPlatform/...play/Shape.html
компилятор пишет:
пытаюсь сунуть пример внизу страницы отсюда: http://help.adobe.com/ru_RU/FlashPlatform/...play/Shape.html
компилятор пишет:
Цитата |
C:\Program Files\SWFTools\as3compile.exe D:\AS3\hello.as -X 1600 -Y 400 -N Process started >>> D:\AS3\hello.as:66:2: warning: no global public MovieClip subclass <<< Process finished. ================ READY ================ |
нуб да?
вот это как написать:
Цитата |
Объявите свойство size для последующего использования при определении размера каждой фигуры. Объявите свойства, определяющие оранжевый цвет фона, темно-серый цвет рамки, размер рамки в пикселях, равный 0, радиус угла, равный 9 пикселям; также задайте расстояние между краем рабочей области и другими объектами, равное 5 пикселям. Используйте свойства, объявленные в предыдущих шагах, вместе со встроенными методами класса Graphics, чтобы нарисовать круг, прямоугольный примитив со скругленными углами и квадрат с координатами x = 0, y = 0. Повторно нарисуйте все эти фигуры у верхнего края рабочей области, начиная с точки x = 5, y = 5 с расстоянием 5 пикселей между ними с использованием метода refreshLayout(). |
Спустя 6 минут, 55 секунд (4.09.2012 - 21:58) bodja написал(а):
нуб да?
Ну еще пока не все потеряно
Дело в этом
Ну еще пока не все потеряно
Дело в этом
Цитата |
public class ShapeExample extends Sprite |
Дело в том что у этого компиллера по умолчанию стоит базовым классом MovieClip,
флеш раньше так делало ,потом перешло на более облегченный класс Sprite.
Я об этом писал выше.
Проще говоря у MovieClip тоже самое что и в Sprite ,только еще больше возможностей.
Поэтому просто делаем так
Цитата |
public class ShapeExample extends MovieClip |
И радуемся успеху.
Спустя 7 минут, 4 секунды (4.09.2012 - 22:05) bodja написал(а):
Цитата |
вот это как написать: |
Там уже все написано в примере.
private var size:uint = 80;
private var bgColor:uint = 0xFFCC00;
private var borderColor:uint = 0x666666;
private var borderSize:uint = 0;
private var cornerRadius:uint = 9;
private var gutter:uint = 5;
и т.д.
Просто сидим ,разбираемся ,где ,чего.
ЗЫ Ты можеш сделать чуть проще.Что бы было яснее и типы с инкапсуляцией тебе не выносили мозг на начальном этапе.
Короче пиши примерно как на JS
var size = 80;
var bgColor = 0xFFCC00;
var borderColor = 0x666666;
var borderSize = 0;
var cornerRadius = 9;
var gutter = 5;
Спустя 43 минуты, 49 секунд (4.09.2012 - 22:49) redreem написал(а):
bodja
да, порадовался успеху, спс.
мне в AS непонятно одно, вроде идут одни объявления методов, а оказывается все это исполняется, типа сразу конструктор чтоль запускается... как мне например из этого примера нарисовать 10 кружков?
UPD: вопрос снят. приступ ночного нубизма
да, порадовался успеху, спс.
мне в AS непонятно одно, вроде идут одни объявления методов, а оказывается все это исполняется, типа сразу конструктор чтоль запускается... как мне например из этого примера нарисовать 10 кружков?
UPD: вопрос снят. приступ ночного нубизма
Спустя 1 час, 34 минуты, 56 секунд (5.09.2012 - 00:24) Guest написал(а):
redreem
Да,конструктор главного класса запускается сразу.
В данном случае прога начинается с
Да,конструктор главного класса запускается сразу.
В данном случае прога начинается с
Цитата |
public function ShapeExample() |
Спустя 55 секунд (5.09.2012 - 00:25) bodja написал(а):
Здесь был я :D
Вот немного моего кода, что бы ты смог вкурить как можно связать обьекты.
ЗЫ размер flash x:1000 y:640
Вот немного моего кода, что бы ты смог вкурить как можно связать обьекты.
package {
import flash.media.*;
import flash.display.*;
import flash.text.*;
import flash.events.*;
import flash.utils.*;
public class Main extends MovieClip {
var text = new TextField();
var stars=new Stars(this);
function Main () {
addChild(text);
text.text='hello!';
text.textColor= 0xFFFFFF;
}
}
public class Stars {
var obj;
var star=[];
function Stars (obj) {
this.obj=obj;
for(var i=0;i<100;i++){
star[i] = new Star(obj,500,320);
}
obj.addEventListener(Event.ENTER_FRAME, move);
}
function move(event) {
for(var i=0;i<100;i++){
star[i].move();
}
}
}
public class Star {
var obj;
var star = new Shape();
var R=Math.round(Math.random()*2)+1;
var stepX=(Math.round(Math.random()*50)-45)/10+2;
var stepY=(Math.round(Math.random()*50)-45)/10+2;
function Star (obj,x,y) {
this.obj=obj;
star.graphics.beginFill(0xffffff);
star.graphics.drawRect(0, 0, R, R);
star.graphics.endFill();
star.x=x;
star.y=y;
obj.addChild(star);
}
function move() {
star.x+=stepX;
star.y+=stepY;
if(star.x>1000||star.y>600||star.x<10||star.y<10){star.x=500;star.y=320;}
}
}
}
<html>
<style>
body {background:#888;margin:0px;padding:0px}
</style>
<body>
<object id="BridgeMovie" data="./test.swf" type="application/x-shockwave-flash" height="640" width="1024">
<param name="menu" value="true" />
<param name="quality" value="high" />
<param name="wmode" value="transparent" />
<param name="allowScriptAccess" value="always" />
<div>Тест для поисковиков и браузеров не поддерживающих плагины</div>
</object>
</body>
</html>
ЗЫ размер flash x:1000 y:640