6 дней назаддавно уже конечно было ясно, но теперь с выходом новой версии флеша html5 выглядит как дополнительная функция к cs5.6))
1 неделя назад...если речь о front end. Для back end'а единственно верный выбор - текстовый редактор Midnight Commander'а :) Вообще просто хотел высказать (наверно, банальную) мысль о том, что идеальная IDE должна строиться именно на "максимально быстром" текстовом редакторе. Путь визуализации - хорошая идея, но опасная. На данный момент "визуальность" должна возникать в мозге программиста - и не понимаю, почему все так стараются перенести нагрузку с этого самого ("несчастного"?!) мозга на что-то иное :) - с помощью визуализации, прививания жёстких принципов ООП, шаблонов проектирования и т.д. Необходимо что-то более радикальное, что не будет строить железные заборы на пути свободной мысли... :)
1 неделя назад[URL=http://i.cx/29z7][IMG]http://i069.radikal.ru/1202/03/9f40d01e407f.png[/IMG][/URL] [b]скачать программу рыбалка 1.6 [/b] [b]скачать проигрыватели для компьютера с картинками [/b] [b]окна приветствия для windows xp скачать [/b] [b]скачать miranda русская версия [/b] [b]скачать original soundtrack driver parallel lines [/b] bb.txt open error база велкома скачать 2009 скачать пакет обновления для среды скачать бесплатную игру кто хочет стать миллионером для пк виста хом премиум скачать скачать поезд train 2008/1400 mb скачать драйвера для аудио реалтек section 8 скачать лицензионную скачать wwe legends patch скачать utorrent 1.6.1 rus visual basic 6.0 скачать скачать антихакер касперского скачать catalyst 6.2 win98 евгений немец скачать kassy 071 скачать скачать программу антропометрии http://beta.purifying.info/viewtopic.php?f=2&t=326117 http://dragonphoenix.brinkster.net/phpbb/phpbb3/viewtopic.php?f=1&t=480248 http://www.erotikapromuze.cz/viewtopic.php?f=4&t=131850 http://programaradar.com.br/forum/viewtopic.php?f=2&t=1062486 http://yfb.messageboard.nl/forum/viewtopic.php?f=1&t=59502
2 недели назадСкачал. Посмотрел. CreateJS - фуфел, шейп твин не поддерживает, маски не поддерживает, эффекты не поддерживает и тд. В общем можно только двигать туда сюда, ну и вложенную анимацию поддерживает. К паблишу для air/android добавили пару галочек - молодцы. В общем изменений максимум на adobe flash cs5.6.
2 недели назадВот именно сегодня очень захотелось пощупать функцию экспорта в CreateJS, а именно сегодня беты уже нет, скачать еще нельзя...
3 недели назадПо правду говоря, создается впечатление, что Adobe в последнее время или зарплату подняли или кнуты менеджерам выделили. Последние версии продуктов выглядят так, будто над ними действительно работали. Обновили не только внутренности и алгоритмы, но и над внешним видом неплохо постарались.
3 недели назадХм, я в этом начинающий, буду знать каким редактором лучше верстать, спасибо!
3 недели назад+1 sublim`у достойная замена GVIM. Как текстовый редактор с большим комьюнити и встренным python интерпертатором, и полностью податлев на костоматизации. нет смысла сравнивать IDE с текстовым редактором. Очень удобно писать erlang программы. Есть плагин для Юнитестов.
3 недели назадКол-во строк в файле с кодом - важный параметр. Есть мнение, что оно не должно быть слишком большим. Для удобства навигации по нему.
Легковесные редакторы хороши еще и тем, что в них бытрее появляются инновации. Например, обрати внимание на мини-текст в правом верхнем углу скриншота для Sublime - по нему можно скроллить мышкой, мгновенно перемещаясь в нужное место кода.
Textastic как раз использует тачевые возможности - для этого у него есть клавиши-компасы (есть на скриншоте). Такая клавиша-компас имеет пять значений. Если просто нажать ее - сработает значение по умолчанию (символ посередине). Остальные четыре символа можно выбрать, если нажать и протянуть пальцем в сторону одного из них.
Визуальное программирование -- это очень интересная, но небанальная тема.
Ведь текст имеет иную структуру, чем изображение.
Текст - условно одномерный, линейный. Изображение - фиксированно двумерное (или фиксированно трехмерное).
Кажущаяся одномерность текста обманчива, особенно когда текст становится кодом. За счет функций (замыканий) и условных переходов текст программы становится многомерным. Даже вне программирования существуют многомерные тексты - хорошая книга может содержать внутренние указатели и ссылки на части самой себя. Поэтому текст - очень продвинутый способ работы с сознанием читателя (или компилятором).
Не вижу возможнлости проделать то же самое с изображением. У него другая природа, и визуальное программирование будет похоже на обычное так же, как графика или живопись похожа на литературу.
До сих пор попытки визуального программирования не заходили дальше имитации обычного - надергали компонентов, но потом - все равно пишем код.
Визаульное программирование - это не способ создавать код мышкой (или тачами), а способ программировать другие каналы восприятия - не аналитические (компилируемые), а эмоциональные.
Кстати, ближе всего к этому подошел флэш. Но потом его убили бизнесом, а из трупа сделали геймдев :)
Так визуальное программирование остается мечтой масс и уделом гениев-одиночек.
3 недели назадБрррр... Легковесные редакторы кода хороши только для легковесных (~20 строк кода) программ. Для всего остального - Idea и FDT.
А редакторы для мобильных устройств зачем-то делают такими же, как на десктопах (у которых есть нормальная клавиатура), при этом совершенно не используя возможности тач-скринов. Думаю, через годик-два появятся наконец мобильные редакторы, где можно будет писать программу чисто жестами, без "волшебных" кнопок.
ВНЕЗАПНО обнаружил, что для обработки массивов в AS3 пользуюсь давно уже устаревшим методом, перебирая значения в цикле for. Но уже не первый год существует множество новых методов для обработки массивов в AS3. Например, нужно спрятать мувиклипы спрайты, занесенные в массив. Метод Array.foreach для этого и задуман:
sprites.foreach(function(sprite:*, index:int, array:Array):void{sprite.visible=false});Как это делается по старинке в цикле вы хорошо знаете:
for(var i:int=0;i<sprites.length;i++){sprites[i].visible=false});Я думаю, что проблема здесь не только в моем длинном тормозном пути, но и в документации, которая несколько суховата, а методы полезные. Кстати, по первой ссылке - образцовый туториал по всем этим методам.
Интересно, сктолько опечаток я сделал в этот раз 

Комментарии
Новые методы симпатичные, но не люблю я как-то inline-функции, а будучи отдельно обьявленными, они, из-за специфического набора аргументов, не очень пригодны для повторного использования:( Тем более только одно свойство редко циклом ставится, а длинный код будет в таком виде плохо читаться.
Видели но уже пора бы отказыватся от массивов и переходить на вектор
быстрее получается и все эти методы и там есть..
а спрайты прятать так грамотнее помоему ивент послать а спрайты пусть слушают
Насколько я понимаю, они нужны только в двух случаях:
1. Если действие над элементами массива может динамически меняться во время выполнения. Можно брать нужную функцию (из заданного набора) и подставлять именно ту, которая нам нужна.
Можно ещё енто как-то соединить с полиморфизмом и получить вообще интересные штуки, только прямо сейчас пример придумать дать не могу.
2. Если нужно максимально сократить количество строк, как в одном всем известном конкурсе
Кстати, эти же методы есть и у Vector.
Но!
Мною обнаружена злая бага: метод map у класса Vector всегда возврашает undefined (а должен возвращать новый вектор).
Поэтому не получается делать так:
При этом метод map у Array работает прекрасно.
Помимо того, что кода больше, выглядит он хуже, так ещё и медленнее более чем в 2 раза. Не муд(р)и, Ростик
var sprites:Array = new Array();
for (var i:uint = 0; i < 1000; i++) sprites.push(new Sprite());
var t:int = getTimer();
for (i = 0; i < 1000; i++) {
sprites.forEach(function(sprite:*, index:int, array:Array):void {sprite.visible = false});
}
trace(getTimer() - t); // 607
t = getTimer();
for (i = 0; i < 1000; i++) {
var l:uint = sprites.length;
for(var j:int = 0; j < l; j++) sprites[j].visible = false;
}
trace(getTimer() - t); // 259
Угу. Забыл про это сказать.
Вызовы функции отжирают очень много.
Для Vector forEach чуток побыстрее, но всё равно проигрывает больше чем в 1,5 раза.
var sprites:Vector.<Sprite> = new Vector.<Sprite>();
for (var i:uint = 0; i < 1000; i++) sprites.push(new Sprite());
var t:int = getTimer();
for (i = 0; i < 1000; i++) {
sprites.forEach(function(sprite:Sprite, index:int, array:Vector.<Sprite>):void {sprite.visible = false});
}
trace(getTimer() - t); // 437
t = getTimer();
for (i = 0; i < 1000; i++) {
var l:uint = sprites.length;
for(var j:int = 0; j < l; j++) sprites[j].visible = false;
}
trace(getTimer() - t); // 274
если мне не изменяет память метод forEach и так пробегает по всем элементам. зачем ты его ещё в цикл обернул на 1К итераций?
Посмотри внимательнее.
Цикл от 1 до length тоже пробегает по всем элементам.
Но он тоже обернут в цикл на 1к.
Угадай для чего
точняк. тупанул
честно честно медлящее. гараздо. все эти навороченные методы медленнее в 2 раза. + к тому же у тебя с типизацией сё-таки беда
2Rost > предпочитаю олд скул for (var i:uint = 0; i < length; i++)
понятно, красиво, удобно читать и мне и людям
2 Jloa > Кроме того объективно быстрее!
for each использую редко. Даже при создании ассоциированого массива, лучше использовать массив имен и доступ к именам по индексам. Получается массив с двойным доступом к ячейкам - и по индексам (если нужно все перебрать) и по имени (если нужен конкретный элемент).
Процесс вызова функции и возвращения из нее - затратное дело.
Поэтому
c = a > b ? a : bбыстреес = Math.max(a, b).хм. а почему бы не писать в таком случае
for each (var sprite in sprites)
sprite.visible = false;
а тут колбек еще какой-то с нетипизированным полем...
Ай ай ай. sprite:Sprite конечно же
Haxe ударяет в голову.
Ага, это еще быстрее. У меня вышли такие результаты:
sprites.forEach - 603
for - 279
for each - 124
Давно знаю, что последний метод самый быстрый - статьи по оптимизации были когда-то зачитаны до дыр. Пользую только for in.
Самое смешное, что знаешь о существовании всех этих методов, но в работе, в голову приходит только стандартный for, и пишешь свои "дубликаты" этих методов... Хоть распечатывай и на стену вешай. (кстати, идея).
Ага, я после перехода на AS3 частенько писал замену indexOf
for each (var item:SuperPuper in array)
.
рулить
Не всегда.
Иногда таки хочется знать ещё и индекс.
Иногда да, но в большинстве случаев
- нет.
Для индекса можно ввести дополнительный ключ:
var key:int=0;
for each (var item:SuperPuper in array)
{
key++;
}
По утверждению Колина Мука, for each самый быстрый из всех методов (по вышеприведённым тестам это видно). И он (Мук) рекомендует не юзать обычный for
и кто вам сказал что key тут будет ключём?
кложуры в AS3 тяжеловато выглядят, поэтому не использую,
а сам функциональный подход люблю....
пример кк гармонично смотрится в груви и как криво в AS3 -
// as3
array.each(function(e:Object):void{
trace(e);
});
// groovy
array.each{e ->
println e
};
Ещё один повод переделать компилятор
// groovy (minimalistic)
array.each{ println it }
дабы не нарушать закон деметера:
var it:ArrayIterator = new ArrayIterator(somearray);
while(it.hasNext())
{
trace(it.next);
}
а бороться за миллисекунды будем тогда, когда это действительно понадобится.
... но будет уже поздно
ну мне лично кажется что фор ич внутри работает как то так - судя по результатам:
var sprites:Array = new Array();
for (var i:uint = 0; i < 1000; i++) sprites.push(new Sprite());
function test(sprite:*, index:int, array:Array):void {
sprite.visible = false;
}
var t:int = getTimer();
for (i = 0; i < 1000; i++) {
sprites.forEach(test);
}
trace(getTimer() - t); //672
t = getTimer();
for (i = 0; i < 1000; i++) {
var l:uint = sprites.length;
for (var j:int = 0; j < l; j++) {
var a:* = sprites[j];
var b:int = j;
var c:Array = sprites as Array;
test(a,b,c);
}
}
trace(getTimer() - t); //674
а изначально в посте они как то в неравные условия поставлены были =)