Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Блоги > e4xu

Всякие разные штуки сомнительной полезности сделанные в свободное от работы время.
Оценить эту запись

Урок 0.

Запись от wvxvw размещена 10.05.2010 в 19:28
Обновил(-а) wvxvw 13.05.2010 в 04:51

Полезные ссылки.
http://www.wikipedia.org
http://community.adobe.com/help/search.html
http://www.adobe.com/livedocs/flash/...riptLangRefV3/
http://www.hexosearch.com/se/search.aspx

Настраиваем среду разработки.
Скачать FlashDevelop и установить.
Скачать Flex SDK (Software Development Kit) и разархивировать в папку C:/flex/sdk.
Опционально: убедится в наличие JRE (Java Runtime Environment - как правило папка C:/Program Files/Java/jreX - X - версия рантайма).
убедится в наличие .NET framework 2.0 или старше (Start > Settings > Control Panel > Add or Remove Programs > найдите Microsofr .NET Framework X - версия фреймворка).
Перейти в папку C:/flex/sdk/runtimes/player/10/win запустить програму FlashPlayer.exe и открыть в ней любой файл с расширением .swf.
Запустить FlashDevelop > F10 > AS3Context > Flex SDK Location > указать папку, куда вы до этого распаковали SDK (C:/flex/sdk).

Объекты и объектно ориентированное програмирование.
AS3 - это исключительно объектно ориентированый язык со статической типизацией, но позволяющий и динамическую типизацию, синтаксически и исторически AS3 - это далекий родственник C++. Его более близкие родственники - семейство языков ECMAScript - динамические скриптовые языки, самый извесный из них - JavaScript. Если вы с ним знакомы, то наверняка найдете много общего.
Концепция объектов и объектно ориентированного програмирования появилась раньше C++, но практически, благодаря популярности этого языка первая рабочая версия которого называлась C с классами, ОО подход ассоциируется именно с ним. Известный предшественник - язык Smalltalk, а так же Lisp и Object Pascal
Java часто считается самой классической реализачией объектно ориентированого языка.

Почему возникла необходимость в объектах в програмировании? Если мы максимально обобщим цель и задачи програмирования, до управления компьютером, то, на первый взгляд существавание чего-либо кроме команд нам не понадобится. Представим, что компьютер, это послушный робот, который умеет выполнять наши команды и напишем ему простую програму (набор команд). Отправим его в магазин за мороженым:
Код:
goto store
buy icecream
goto home
Получилось - робот сходил в магазин, купил мороженое и вернулся. И тут мы столкнулись с проблемой - в следующий раз, когда мы снова захотим мороженого, нам снова прийдется писать ту же самую програму. Немного подумав, вы прийдете к выводу, что повторяющиеся действия не плохо бы запомнить и в следующий раз, когда вам захочется мороженого, вам нужно будет напомнить роботу о том, что он делал в прошлый раз, вместо того, чтобы объяснять еще раз. И так вы перейдете к процедурному програмированию: процедура, это операция, которую можно повторить произвольное количество раз.
Код:
function buyIcecream()
{
    goto store
    buy icecream
    goto home
}
buyIcecream() // первая пачка мороженого
buyIcecream() // вторая пачка мороженого
Но, опять же, есть неудобство, магазин может оказаться закрытым, или просто мороженого в нем не будет (полярная ночь). И вам бы хотелось предусмотреть такой вариант в вашей програме, чтобы не остаться случайно без мороженого. Чтобы справится с этой задачей вам понадобятся условия. Условия позволяют контролировать програму и реагировать на внешние факторы.
Код:
function buyIcecream()
{
    goto store
    if (open) // условие, если оно выполняется, то можно купить мороженое и смело возвращаться домой
    {
        buy icecream
    }
    else // а если нет, то сообщить об ошибке и ждать указаний
    {
        error
    }
    goto home
}
buyIcecream()
Новая дилемма - магазинов на самом деле в вашем городе не один, и ни два. И, наверное, если магазин закрыт, то стоять под дверью и ждать пока откроют нет смысла. Нужно пойти в другой магазин. И тут возникает необходимость в объекте - сущности, которая может однозначно идентифицировать себя (как магазин) и обладать свойствами - быть открымым или закрытым и помнить сколько пачек мороженого осталось.
Попробуем описать эту сущность:
Код:
object Store
{
     open:Boolean // обратите внимание на : таким образом мы обозначили принадлежность
     icecreams:uint // к определенной разбовидности объектов. Boolean - правда / ложь. uint - целое положительное число
}
Модифицируем нашу програму, используя объект-магазин
Код:
object Store
{
     open:Boolean
     icecreams:uint
}
object Grocery
{
     open:Boolean
     icecreams:uint
}
function buyIcecream()
{
    goto store
    if (Store.open)
    {
        buy icecream
    }
    else if (Grocery.open)
    {
        buy icecream
    }
    else
    {
        error
    }
    goto home
}
buyIcecream()
И тут же мы видим новую неприятность - ради каждого объкта писать фактически тот же самый код? - явно не практично. Проще создать шаблон, и создавать объекты по шаблону.
Код:
class Store
{
     var open:Boolean // var - переменная, поскольку мы будем создавать много
     var icecreams:uint // различных объктов, нам нужно чтобы у каждого было изменяемое свойство
}
var store:Store = new Store();
var grocery:Store = new Store();
function buyIcecream()
{
    goto store
    if (store.open)
    {
        buy icecream
    }
    else if (grocery.open)
    {
        buy icecream
    }
    else
    {
        error
    }
    goto home
}
buyIcecream()
Вот мы и подошли к основам понимания объектов и классов. Подитожив: объект, это сущность, которую можно идентифицировать и которая может хранить свое состояние.
Класс - это шаблон по которому создаются объекты.

Теперь попробуем реализовать нашу задумку на практике используя AS3 (материалы урока прилагаются)
Вложения
Тип файла: zip lessons0.zip (9.5 Кб, 203 просмотров)
Всего комментариев 40

Комментарии

Старый 10.05.2010 21:37 Котяра вне форума
Котяра
 
Аватар для Котяра
Сумбурно и всё вперемешку..
Но - удачи!
Старый 11.05.2010 00:19 wvxvw вне форума
wvxvw
 
Аватар для wvxvw
Нужно уложится в 5 уроков... вот, наверное поэтому и сумбурно
Старый 11.05.2010 14:03 Aloran вне форума
Aloran
Да ладно все ок. Тем кто не знаком с ООП, будет намного проще понять на icecream'ах ))))
Старый 11.05.2010 16:06 E-mail вне форума
E-mail
 
Аватар для E-mail
В последнем примере есть пару очепяток "Strore"
Старый 11.05.2010 20:25 chingachgoog вне форума
chingachgoog
 
Аватар для chingachgoog
А это уроки ЧЕГО?
Если это уроки ООП применительно к ECMAScript, то надо написать и прототипное создание объекта.
Старый 11.05.2010 21:07 Psycho Tiger вне форума
Psycho Tiger
 
Аватар для Psycho Tiger
Код AS3:
var store:Strore = new Store();
Syntax Error. Type mismatch

chingachgoog, AS3, конечно. Мы тут ООП в AS1 не любим =)
Старый 11.05.2010 21:14 wvxvw вне форума
wvxvw
 
Аватар для wvxvw
E-mail:
Опаньки, спасибо, поправил.

chingachgoog:
Просто в блогах это по-странному отображается, это урок из категории ActionScript для начинающих. Расказывать про разные подходы можно очень много, если бы было время, то я бы с удовольсвием со студентами и про функциональный подход поговорил, да и вообще на тему истории и теории ОО можно несколько томов / диссертаций накатать. Фишка в том, что есть 25 акад. часов и надо как-то за это время чего-то рассказать.
Старый 11.05.2010 21:47 chingachgoog вне форума
chingachgoog
 
Аватар для chingachgoog
Цитата:
chingachgoog, AS3, конечно. Мы тут ООП в AS1 не любим =)
Не знаю кто такие "мы", но я про AS1 не проронил ни одного слова. Возможно, "мы" не в курсе, что прототипы есть в AS3? ))) Речь ведь шла об ОБЪЕКТЕ и его создании, не так ли?

Цитата:
Просто в блогах это по-странному отображается
Ага, сейчас только заметил.
Было бы логично если бы верхняя строчка отображала
Форум Flasher.ru > Блоги > e4xu > ActionSctipt для начинающих

NB!

Если честно, то блок-схема была бы совсем не лишней.
Старый 11.05.2010 21:49 Alex Lexcuk вне форума
Alex Lexcuk
ВАУ!!! Ни разу не использовал goto, краем уха слышал что есть оно, но ни разу не видел. Урок очень хороший, даже супер.
Старый 11.05.2010 22:21 wvxvw вне форума
wvxvw
 
Аватар для wvxvw
Да, но это значит, что студентам нужно будет и про элементы control flow / flow charts, а там за ними еще и UML (а его тоже разных разновидностей) рассказывать... Хотя, наверное, да, нарисую.

Не-не-не
Это "псевдокод". Goto есть но в байткоде, и вообще традиционно джампом называется. В AS его просто так не получишь, ну, можно извратится как-нибудь с компилятором наверное, но вообще, по-простому никак И я не уверен, что тот же джамп сработает, если он не на метку, а вообще на произвольную инструкцию Ну, шансы даже, что если и сработает - будет куча ексепшенов потом в связи с незаполнеными регистрами и т.п.
Просто ну как еще описать програмирование предшевствовашее ОО, если там все сплош и рядом были именно goto?
Обновил(-а) wvxvw 11.05.2010 в 22:24
Старый 11.05.2010 22:44 Alex Lexcuk вне форума
Alex Lexcuk
Цитата:
Просто ну как еще описать програмирование предшевствовашее ОО, если там все сплош и рядом были именно goto?
Все верно, goto было много.
Старый 12.05.2010 00:01 Psycho Tiger вне форума
Psycho Tiger
 
Аватар для Psycho Tiger
Цитата:
Не знаю кто такие "мы", но я про AS1 не проронил ни одного слова. Возможно, "мы" не в курсе, что прототипы есть в AS3? ))) Речь ведь шла об ОБЪЕКТЕ и его создании, не так ли?
Ага. А ещё у цивилизации есть дубинки и копья. Только почему-то их не применят, если начнется война.

Так и тут - прототипы в AS3 нафиг не сдались. Оставлено для старперов.
Старый 12.05.2010 11:50 Волгоградец вне форума
Волгоградец
 
Аватар для Волгоградец
wvxvw, а для чего, если не секрет все это? В преподаватели подался?
Старый 12.05.2010 13:15 Emz вне форума
Emz
а мне понравилось, как на примере объяснили про объект и класс и в каком месте (в какой момент) их нужно использовать.
Старый 12.05.2010 14:13 wvxvw вне форума
wvxvw
 
Аватар для wvxvw
Ага, вот дали курс провести Подумал, почему бы заодно не выложить + когда несколько раз обдумаешь и напишешь самому понятнее становится чего рассказывать.
Старый 12.05.2010 16:11 chingachgoog вне форума
chingachgoog
 
Аватар для chingachgoog
Цитата:
Ага. А ещё у цивилизации есть дубинки и копья. Только почему-то их не применят, если начнется война.
Пример неудачный. Но не буду засорять тему wvxvw

Цитата:
Так и тут - прототипы в AS3 нафиг не сдались. Оставлено для старперов.
Смеялся.
Если тема урока - объяснить что такое ОБЪЕКТ и как он создается, то без прототипов вообще не обойтись.
Старый 12.05.2010 16:23 Котяра вне форума
Котяра
 
Аватар для Котяра
wvxwv - честно: это не годится для вступления никак.
напиши сначала план всех 5 часов. и определи начальный уровень.
А то тут ты обясняешь каким-то псевдокодом и тут-же
Код AS1/AS2:
function buyIcecream()
{
    goto store
    if (store.open)
    {
        buy icecream
    }
    else if (grocery.open)
    {
        buy icecream
    }
что такое function, что такое if/else, что за точки и скобочки?

определи для начала, что они уже изучили и объясняй в терминах пройденного, либо начни с азов. с синтаксиса. Расскажи что такое ф-ции/методы и переменные/свойства и не пиши непонятных buy icecream
У тебя тут для 0 уровня - много непонятного, для более продвинутого слишком просто.
А по времени тут на 2 часа для 0 и 5-15 минут для 0,5 уровня).
Вообще основы хорошо у Мука описаны (про as2)
Я знаю о чём говорю - приходилось обучать..
Обновил(-а) Котяра 12.05.2010 в 16:29
Старый 12.05.2010 17:22 wvxvw вне форума
wvxvw
 
Аватар для wvxvw
Котяра
Ну, мне еще за урок надо бы проследить, что все установили незнакомую програму, смогли запустить, смогли скомпилировать проект и чтобы фидбек какой-то от програмы смогли получить
Что до функций... то тут прийдется принять "на веру", что функции есть, и что работают они именно так, как работают... Если объяснять что такое функция - нужно рассказать про конечный автомат, машину Тюринга и в конечном итоге мы прийдем к тому, что в чистом виде функций в AS как бы и нет вообще (first order function)... Просто, я в чем-то повторяю мое собственное обучение. Я так думаю, что функцию в AS я использовал первый раз за несколько лет до того, как вообще понял, что она из себя представляет / должна представлять. Можно было бы, конечно пойти по более практичному пути, и просто рассказать о том, какие инструменты имеются в наличии...
Мне еще на следующем уроке прийдется объяснять как контроль версий организовать, чтобы студенты как-то могли домашнее задание показывать...
Что до замечаний - я во многом согласен, если чесно, я рассчитывал на то, что у студентов уже был какой-то опыт с HTML / JavaScript, поэтому програму пришлось урезать на ходу. Но я так рассчитываю, что на следующих уроках псевдокода не будет. Есть еще и другой момент, if/else, "точки" и "скобочки" они же не просто так, они должны быть по задумке авторов языка интуитивно понятными. Точно так же как в человеческом языке есть восклицания например, значение которых не нужно объяснять (хотя, при изучении другого языка иногда бывают непонятки и неожиданости). Тем не менее, я думаю, что это что-то, что должно быть понятно из контекста.

chingachgoog
Нет, вовсе не обязательно, есть языки, в которых наследование присутствует, а понятие прототипов как таковых отсутствует. Все тот же Common Lisp например - там и близко нет прототипов. Наследование можно представить в виде прототипов, но это не единственный способ (ну, в том же AS3 только очень незначительная часть наследования реализована на прототипах).
Старый 12.05.2010 18:23 chingachgoog вне форума
chingachgoog
 
Аватар для chingachgoog
Цитата:
что такое function, что такое if/else, что за точки и скобочки?
Собственно поэтому я сказал, что нужна блок-схема (ромбик - условие, там и т.п.)
По идее блок-схему должны все знать. А дальше уже реализация синтаксисом AS.

Цитата:
Нет, вовсе не обязательно, есть языки, в которых наследование присутствует, а понятие прототипов как таковых отсутствует
Но в данном конкретном уроке речь об объектах AVM? Или сначала об сферических объектах в ваккууме? )))

PS

А вообще я бы испугался еще бы на этапе "настраиваем среду разработки".
Вместо того чтобы для простоты установить флеш-редактор и начать изучение приходиться устанавливать кучу непонятных программ и еще их согласовывать друг с другом. Брр...
Обновил(-а) chingachgoog 12.05.2010 в 18:26
Старый 12.05.2010 19:55 wvxvw вне форума
wvxvw
 
Аватар для wvxvw
Не-не, не надо отбивать у людей сразу желание покодить. Кодить в том флеше который у них там сейчас установлен вообще не возможно. Представь класс с 13" CRT мониторами сделаными в прошлом веке и какими-то пеньками с Виндоус ХП, и на этом запускается ЦС3 (вобщем, ничего особо страшного, запускается, конечно... но разница есть). Кроме того, задача не ставится научить людей пользоваться графическим редактором, им нужно научится код писать. Делать это в ИДЕ - так они ж ненавидеть любой флеш после этого будут ФлешДевелоп он же за счет автокомплита и контекстной кодогенерации и снипетов дает как бы общее представление о том, как другие люди работают, и что другие люди чаще всего делают, но, главное, забирает всю рутинную работу, которая к обучению никакого отношения не имеет.
Вот, представь, тебя посадили с блокнотом, и сказали "напиши програму" - а ты даже не знаешь с чего начать, а в ФД - есть интерфейс с "подсказками" типа "создать класс" - ну, даже если ты не знаешь что ткаое класс - кликнул, посмотрел, и оп-па, уже какая-то програма написана, можно дальше разбираться. Кликнул на свойсто, открыл контекстное меню, а там "сгенерить сеттер / геттер" - не знаешь, что такое геттер / сеттер - ну так попробовал, посмотрел, что получилось. Худший вариант - чего-то не получилось, но так хоть есть общее представление, чего искать.
А блок-схему, ну вот допилю тут фриланс какой-то дурацкий и нарисую

EDIT: Сначала про сферических коней
Обновил(-а) wvxvw 12.05.2010 в 19:57
Старый 12.05.2010 20:28 chingachgoog вне форума
chingachgoog
 
Аватар для chingachgoog
У них будет шок, когда они придут домой и захотят что-то сделать дома. Потомучто им надо будет воспроизвести этап "настраиваем среду разработки".
Если не будет пошаговой инструкции (буквально пошаговой), то 90% просто не дойдут до этапа "интерфейс создать класс". А установить тот же CS3 они с вероятностью 95% смогут дома и сами.

Опять же автокомплит и т.п. "упростители жизни" не зря запрещены в серьезных учебных заведениях. Лучше уж в блокноте учить писать.
ФД вывалит кучу лишней информации, которая при знакомстве совершенно не нужна. По-моему это называется информационная слепота.

ФД можно показать в самом конце: смотрите дети, оказывается для флеша есть мастер как в виндусе, типа как открыть новое окно...
Старый 12.05.2010 21:16 Котяра вне форума
Котяра
 
Аватар для Котяра
Цитата:
Что до функций... то тут прийдется принять "на веру", что функции есть, и что работают они именно так, как работают... Если объяснять что такое функция - нужно рассказать про конечный автомат, машину Тюринга и в конечном итоге мы прийдем к тому, что в чистом виде функций в AS как бы и нет вообще (first order function)...
...я рассчитывал на то, что у студентов уже был какой-то опыт с HTML / JavaScript, поэтому програму пришлось урезать на ходу. Но я так рассчитываю, что на следующих уроках псевдокода не будет. Есть еще и другой момент, if/else, "точки" и "скобочки" они же не просто так, они должны быть по задумке авторов языка интуитивно понятными.
вот уже лучше.. берём за основу что C-синтаксис знаком.
типа: Вам ведь знаком JavaScript? Нет тогда почитайте то-то и то-то..
И пиши примеры кода без такого корявого псевдокода - сразу синтаксически правильными конструкциями ..
Кроме того, причём здесь конечные автоматы и всякие тюринги? Это реализация, а не абстракция. Мат Ф-ции и параметры изучают в 6-7 классе по-моему.
Блок-схемы нафик не нужны - они только засоряют мозг, хотя в качестве факультатива можно нарисовать пару ромбиков и дать ссылку на википедию если не знают..
ЗЫ: А что за студенты? Школьники 5 класса? Лингвисты? или Юристы?
Я бы всё-таки набросал во вводную раз в 5 побольше инфы - а что именно представлять - вычислил бы по ходу лекции.
Старый 12.05.2010 21:18 Котяра вне форума
Котяра
 
Аватар для Котяра
Цитата:
Опять же автокомплит и т.п. "упростители жизни" не зря запрещены в серьезных учебных заведениях. Лучше уж в блокноте учить писать.
бред!
Старый 12.05.2010 21:18 wvxvw вне форума
wvxvw
 
Аватар для wvxvw
Установка FlashDevelop по уровню сложности ничем не отличается от Flash. Т.е. абсолютно - просто несколько раз нажать на Yes / Continue или чего там. Что нужно настроить - флеш плеер дебаггер чтобы был, и чтобы SDK был. Наличие или отсутствие установленого флеша на это как бы никак не повлияет, это все равно нужно.

Учиться писать в блокноте - маразм, и люди, которые пытаются к этому приучить - старые маразматики. Это все равно, что меня в институте учили макет книги делать - текст по буквочкам / по строчкам вклеивать. Я не могу сказать, что так уж много работал по специальности, лет 5-6 от силы, но никогда, то есть абсолютно никогда, умение приклеивать святотацкие вырезки из трудов по научному Коммунизму мне в жизни не пригодились. А вот если бы нас тогда в институте научили элементарно пользоваться Кварком (тогда второй уже был, и Корел Вентура была) - то это бы мне здорово потом жизнь облегчило.

EDIT: Тут есть такой контингент называется "сразу после армии". Это такие люди, которые восновном отучились в школе, кто хорошо отучился - тот с аттестатом зрелости, кто не очень - ну это, как ПТУшник по-сути... Ну и потом на это все дело наложилось 3 года промывания мозгов в армии. Есть сознательные личности, которые и в армии чем-то полезным занимались, но подавляющее большинство выходят из этого заведения и вообще не знают, чего с собой делать... Ну и есть еще те, кто решил квалификацию сменить. И, как бы, не, синтаксис C++ / JavaScript они не знают Моя ошибка была в том, что я предположил, что какие-нибудь зачатки JavaScript'a все-таки есть.

EDIT2: Да, это по поводу автоматов и тюрингов. Ну, как бы функция в AS3 это всегда метод, т.е. это объект со свойствами и контекстом который функцию выполняет, а функции первого порядка - это операторы, например... Но если я им сейчас скажу, что + это "настоящая" функция, а function foo() {} - это вообще-то метод, то я даже не знаю, как это потом разгребать
Обновил(-а) wvxvw 12.05.2010 в 21:34
Старый 12.05.2010 22:18 chingachgoog вне форума
chingachgoog
 
Аватар для chingachgoog
wvxvw, спросите потом этих дембелей, кто из них сумел дома повторить "установку среды разработки" и кто догадался особо не парясь использовать обычный флеш-редактор.

Цитата:
бред!
Это обоснованная учебным процессом реальность. Хотя может в нашей стране на это и смотрят сквозь пальцы, как и на пиратские программы.

Когда человека учат писать, ему дают букварь, бумагу и карандаш, а не компьютер с распознователем речи. С последним он быстрее сможет составить письмо и даже отправить его по почте, но это НЕ НАУЧИТ его писать. Можно и обезьяну выдрессировать нажимать последовательность букв...

Но если речь о курсах "как стать флешером за пять часов", то, возможно, автокомплит пойдет на пользу (пользу в том смысле, что удержаться в пяти часах, а не в том, чтобы появились навыки).

NB!

Зачем тогда пример с мороженым? Надо что-нибудь задорное, жизненное. Типа составить алгоритм марио-квеста ))) Объект-баба, свойства такие-то, методы такие-то )))
Старый 12.05.2010 23:13 Волгоградец вне форума
Волгоградец
 
Аватар для Волгоградец
Когда я начинал учить AS, я писал много в блокноте! На работе не было возможности ставить программы. Потом файл класса нес домой и там уже, поборов кучу ошибок, компилировал. Это был ад. Когда я узнал, что такой FD, процесс обучения пошел в разы быстрее. И проводя аналогии - chingachgoog, у тебя водительские права есть? На какой машине учился? В моей автошколе была убитая шестерка. Но я бы предпочел учиться на современной иностранной машине. Тем более потом я водил иномарку автомат...
Старый 12.05.2010 23:16 Котяра вне форума
Котяра
 
Аватар для Котяра
Цитата:
Это обоснованная учебным процессом реальность. Хотя может в нашей стране на это и смотрят сквозь пальцы, как и на пиратские программы.
Тот кто внушил вам эту чушь - "старый маразматик" (c) wvxvw
Я не понаслышке знаком с методами обучения в серьезных (без всяких кавычек) учебных заведениях именно программистской направленности - МГУ-МЭИ-МФТИ - там вполне адекватные преподаватели.

UPD
Долго втыкал во фразу:
Цитата:
Извесный предшевственник - язык Smalltalk, а так же Lisp и Object Pascal Java часто считается самой классической реализачией объектно ориентированого языка.
может так?
Цитата:
Известный предшественник языка Си - язык Smalltalk, а также, языки Lisp, Object Pascal и Java часто считаются самой классической реализацией объектно -ориентированного языка.
По - хорошему вообще так:
Известный предшественник языка Си - язык Smalltalk, часто считается самой классической реализацией объектно-ориентированного языка.

Я не грамманаци, но это уж чересчур - особенно для урока )))

UPD2
Цитата:
AS3 - это исключительно объектно ориентированый язык со статической типизацией
Это неверно.
скорее:
AS3 - прототипно-ориентированный язык со статической типизацией, поддерживающий ООП парадигму и некоторую часть функциональной парадигмы (замыкания, динамические типы итп)
(Paradigm Multi-paradigm: prototype-based, functional, imperative, scripting)
Извини за назойливость, но нехорошо преподавать с ошибками, особенно фактическими.
Обновил(-а) Котяра 12.05.2010 в 23:55
Старый 12.05.2010 23:39 wvxvw вне форума
wvxvw
 
Аватар для wvxvw
Это как бы моя прямая обязаность спросить и проверить, что получилось. Просто, ну серьезно, я не вижу смысла учить их тому, что:
- сейчас займет кучу времени (написать тот же код во флеше в разы дольше по многим причинам).
- сама по себе програма (FlashDevelop) выполняет какую-то часть моей работы - там синтаксические ошибки подсветит, или из темплейта сразу создаст класс / функцию / переменную правильно. Просто уже одна подсветка синтаксиса чего стоит! Чем я буду это по 100 раз на доске писать, лучше пусть они 1 раз нажмут на кнопку и увидят, как же на самом деле нужно. (С доски скопировать можно и с ошибкой). Я боюсь, что во флеше вряд ли кто-то из студентов сможет повторить урок, ну очень уж глупо редактор построен. Т.е. одним из требований было так же создать структуру пакетов (из флеша не возможно увидеть файловую систему и сориентироваться где создалась папка и правильно ли она называется). Кроме того, просто много фактической информации - даже слов новых очень много, и если хотя бы часть кода не создать автоматически - будет полный ступор.
- ну и не прийдется им никогда писать код во флеше / блокноте, ну не делает это практически никто сейчас. Разве что в каких-то совершенно экстримальных условиях. Если они пойдут работать, то наверняка, первое, что увидят - будет Флекс Билдер, но т.как это все-таки стоит денег, и на курсах его нет (да и вообще еще спорный вопрос, какой редактор лучше), то ФД - это условия максимально приближенные к действительности.

Ну и последнее - флешевый компилятор (не линкер) он просто морально убогий, нельзя людей учить на каком-то игрушечном недокомпиляторе...
Старый 13.05.2010 02:44 AzagThoth вне форума
AzagThoth
 
Аватар для AzagThoth
Интереса ради установил всё это дело по инструкции. В Windows 7 - FlashDevelop по умолчанию ставится в "Program Files (x86)/FlashDevelop" при попытки после установки запустить программу. последовательно вываливается около десяти окон с алярмами. Вариантов 2: континуэ или exit. Соответственно та же ерунда и при закрытии FlashDevelop. Не могу утверждать на 100%(не проверял), но очень сильно подозреваю что это из-за контроля учётных записей пользователей(UAC), так как если запускать программу "от имени Администратора", то всё работает на удивление справно.
Выводы:
1) Задать насильный запуск всегда от администратора. (Свойства-Совместимость-Уровень прав-Выполнять эту программу от имени администратора)
2) Во время установки не использовать системных папок Windows и установить например в "C:/flex/FlashDevelop"

Затем, "Запустить FlashDevelop > F10 > AS3Context > Flex SDK Location > указать папку, куда вы до этого распаковали SDK (C:/flex/sdk)." Не сразу дошло что это клавиша "F10". В течении десяти минут где то искал такой пункт в меню. Но это уже, конечно, я затупил

EDIT1: Забавная штука кстати. Недостатки перед средой разработки Adobe Flash CSX вероятно в том, что нет адекватного графического интерфейса(я по крайней мере найти пока не смог) Да и вообще не понятно очень многое, например как эмбдить шрифты и т.д. и т.п. Предполагаю, что работа с FlashDevelop чем то похожа на разработку "Flash JavaScript File" где каждый чих нужно описывать программно. Может конечно я сильно ошибаюсь, но первое впечатление такое.
Обновил(-а) AzagThoth 13.05.2010 в 03:27
Старый 13.05.2010 04:35 wvxvw вне форума
wvxvw
 
Аватар для wvxvw
Котяра
По поводу граматики, спасибо. Надо ставить русский спеллчекер...
Фактические ошибки - нет, твоя моя не понимать.
Java - классическая реализация.
Smalltalk и Object Pascal - предшественники (Только не Си, а С++). Т.е. идея объектов появилась там, а потом она перекочевала в "новую версию Си" - С++, в Cи изначально про объекты никто не говорил.
По поводу мильтипарадигменности в AS3 - сорри, это, много чести и притянуто за уши. Не знаю, кто это написал, и с чего бы это, но ничего более далекого от функциональных языков я даже представить не могу. Т.е. если AS3 функциональным назвать, то не-функциональных языков тогда вообще просто не будет (ну кроме регулярных выражений и BAT, разве что ). Кроме того, prototype-based - это относится к AS1 / AS2, AS3 не является таковым (он позволяет прототипное наследование, скорее как исключение, при чем использование этой возможности ничтожно мало для того, чтобы выносить его в спецификацию). Так и Доктрину какую-нибудь можно ОО языком назвать - а чего, есть же "почти" объекты? Да, и AS3 поддерживает всего один динамический тип, который так и называется - dynamic - это тот, который астериск нету в нем больше никаких динамических типов. Динамическая типизация - это как в LinQ когда квери возвращат объекты созданые из динамически сгенеренных классов (например на основе того, что в БД было), AS3 такого делать не умеет.

AzagThoth
А да, про это стоило бы сказать... Я просто на семерку не ставил, но как-то такая тема на форуме проскакивала. И да, это совсем не графический редактор. Что касается ресурсов (библиотеки), то есть свои плюсы и минусы. Больше минусов, но есть и позитивные моменты, например, можно легко настроить батч-компиляцию картинок / звуков. Ну и проще найти что где и откуда взялось.
Старый 13.05.2010 16:16 chingachgoog вне форума
chingachgoog
 
Аватар для chingachgoog
Процесс учебы содержит в себе несколько узловых моментов. Это в том числе РУТИНА и приобретение НАВЫКА. Навык вырабатывается при выполнении рутины. Тут ничего не поделаешь...
Но есть и еще один узловой момент - ВРЕМЯ отведенное на учебу. Раз время критично, как говорит wvxvw, то тогда соглашусь - FD предпочтительней. Но я бы не назвал это учебой, скорее тренинг-презентация...

PS

Это то, что можно не читать...

Цитата:
В моей автошколе была убитая шестерка. Но я бы предпочел учиться на современной иностранной машине. Тем более потом я водил иномарку автомат...
Я продолжу аналогию с написанием письма. Письмо можно написать двумя способами:
1) Рутинный способ (высечь долотом на скрижале, нацарапать на бересте, пером и чернилами, карандашом и авторучкой)
2) "Автокомплитный" и т.п. ленивые методы (распознователь речи и автопечать)

Второй способ несомненно быстрее и проще человеку, который не знаком с письмом. Быстрее в смысле быстрее получить результат - бумажку с нужным текстом.
Но угадайте с трех раз, будут ли с помощью второго метода учить читать и писать в школе?

Маразм первого метода - это когда вместо использования карандаша и авторучки вас будут заставлять писать пером и чернилами или царапать бересту. То же и с автомобилями. Шестерка на ручке - это перо и чернила, а иномарка-автомат - гелевая ручка. Но это все равно первый рутинный метод.
Автомобиль с "автокомплитом" я даже боюсь представить. Когда речь идет о жизни и смерти убогость и тупость автокомплита (в широком смысле) сразу видна. Сейчас есть экспериментальные авто с зачатками "автокомплита". Например предупреждение наезда на пешехода. Но первый лист газеты, вылетевший с тротуара будет печально закончен экстренным торможением - "автокомплита": у вас разбитый о баранку нос и дама красившая ресницы въедет вам в зад...

Цитата:
Тот кто внушил вам эту чушь - "старый маразматик"
То ли у Эндрю Троелсена, то ли у Метью Мак Дональда встретилось в тексте про запрет ленивчиков в учебных заведениях (понятно, что речь не про РФ). Не думаю, что они маразматики и тем более старые. К тому же это было не внушение, а просто констатация факта. Походя. Я не обратил даже на это внимание, потомучто факт этот логичен сам по себе - см. про рутину и приобретение навыка. Я помню себя в школе - в младших классах не разрешали пользоваться калькуляторами, а в старших разрешали - это логично и правильно.
Старый 13.05.2010 16:36 Psycho Tiger вне форума
Psycho Tiger
 
Аватар для Psycho Tiger
Чинги, я вот читаю тебя и понять не могу. Завтра апокалипсис? Всё, конец всему, всё придется с 0 начинать?
Не умеет человек без автокомплита писать - плевать. Если пишет с автокомплитом - когда нибудь, да запомнит имена пакетов и классов.

А можно и до абсурда твою логику довести, причём легко. Нельзя давать людям энциклопедии в интернете - пока не находятся в библиотеку. Нельзя разрешать готовить на печке, пока не научаться на костре. Нельзя давать шампунь, пока блох из волос руками доставать не научаться.
Старый 13.05.2010 17:41 chingachgoog вне форума
chingachgoog
 
Аватар для chingachgoog
Цитата:
Чинги, я вот читаю тебя и понять не могу
Тут все просто.
Рутина -> Навык
Только так и не иначе. Ленивчики убирающие этап "Рутина" приводят к отсутствию навыка.
Мама кормит ребенка с ложки ("автокомплит"). В принципе ребенку это и быстро и удобно. Но навыка (кушать самому ложкой и вилкой) от этого не появится ни на йоту.
Этим, кстати, многие мамы страдают - им так быстрее и проще (на первый взгляд). Но мама которая ВНАЧАЛЕ потратила чуть больше ВРЕМЕНИ на ОБУЧЕНИЕ ребенка (Рутина -> Навык) выигрывает потом многократно, в т.ч. и по времени.
Старый 13.05.2010 17:44 alexcon314 вне форума
alexcon314
А мне всегда нравилось вот это: "К образованию склонны лишь умные люди, но оно им почти не нужно."
Предлагаю прекратить флейм про блох и дубины и выражаться по существу материала урока.
Старый 13.05.2010 19:44 Psycho Tiger вне форума
Psycho Tiger
 
Аватар для Psycho Tiger
Чинг, у тебя примеры с апокалипсисом. Кормила мама с ложки - ребёнка всё устраивало. Он вырастает - уже маму не устраивает, быть может ребёнка. А когда устраивало - было шикарно. FD всегда всё устраивает, это программа. А человек захочет пересесть с FD в блокнот? Не смеши.

Я согласен, что научиться быть крутым быстрее, если делать рутину. Это бесспорно. Спор идёт о том, чтобы обучить человека делать то, что ему нужно, а не быть крутым.
Старый 13.05.2010 20:04 chingachgoog вне форума
chingachgoog
 
Аватар для chingachgoog
Psycho Tiger, если wvxvw не будет против, то я отвечу. Но в принципе мне кажется, что я написал достаточно для понимания...
Старый 05.07.2010 19:37 chingachgoog вне форума
chingachgoog
 
Аватар для chingachgoog
Кстати, попался на глаза тот фрагмент об университетах о котором я говорил:

Зндрю Троелсен
"Язык программирования C# 2008 и платформа .NET 3.5"
с.81
"Построение приложений на C# с использованием csc.exe"

"...работу приходится выполнять в университете, где использование инструментов для генерации кода и IDE-сред обычно запрещено."
Старый 05.07.2010 22:17 wvxvw вне форума
wvxvw
 
Аватар для wvxvw
Ну так в университетах готовят теоретиков. А это делалось для колледжа. Тeм более, запрещено скорее всего по коммерческим причинам - чтобы не получилось так, что все студенты получат неправильное представление о том, что есть на рынке, какие редакторы существуют и т.д. хотя это все равно не помогает - виндовс и вижуал студио, или, еще хуже - эклипс (не зря его так назвали), и на этом кругозор выпускника заканчивается, и возможно, навсегда. В колледже стоит задача научить студентов программировать на АС. Надо либо быть на окладе у Адоби, или просто людей ненавидеть, чтобы пихать студентам флеш ЦС вместо бесплатных редакторов. (на билдер у колледжа лицензии нет).

А вообще, надо как-то собраться с мыслями и выложить все остальное...
Старый 07.07.2010 14:48 Nirth вне форума
Nirth
 
Аватар для Nirth
wvxvw
А у меня такой вопрос – на данный момент, есть 4 основных парадигмы программирования, из которых самая популярная Императивный-ООП. А так ли надо рассказывать людям про goto и тд, не будет ли это просто лишней информацией?

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

Но это имхо, никогда никого не учил )
Старый 08.12.2010 06:49 tsarapkabel вне форума
tsarapkabel
 
Аватар для tsarapkabel
А ещё уроки будут?
 

 


Часовой пояс GMT +4, время: 12:11.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.