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

Вернуться   Форум Flasher.ru > Flasher.ru > Флейм

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 30.12.2008, 20:41
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 71  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,601
Записей в блоге: 17
Цитата:
Сообщение от iNils Посмотреть сообщение
wvxvw, ну что ты споришь с человеком, который сравнивает объем кода AS3 не с AS2, а с AS1!
Подумаешь, что треть кода генерится шаблоном, вторая треть сниппетами, а последняя автокомплитом
Гм, поделись такими офигенными шаблонами

Старый 30.12.2008, 21:26
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 72  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
http://flasher.ru/forum/attachment.p...6&d=1221782525
Ну это то, что сам делал, не бог весть что, просто пример.
http://www.flashdevelop.org/communit...hp?f=13&t=3943
Это шаблон с кучей всего, его бы еще немного до ума довести и получилась бы интересная штука, ну и такого добра много...
__________________
Hell is the possibility of sanity

Старый 02.01.2009, 01:50
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 73  
Ответить с цитированием
chingachgoog
Banned
[+4 01.02.09]
[+1 01.02.09]
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
Цитата:
Сообщение от wvxvw Посмотреть сообщение
Цитата:
Сообщение от chingachgoog
Это просто значит, что вы не разобрались с этим действием на AVM1
Естественно не разобрался, у меня и инструментов для этого нет, да и ерундой страдать тоже времени нету. Ну зачем мне нужно перелистывать килотонны диссасамбленного кода который выполнялся во время, когда эта ошибка случилась?
А при чем тут AVM1? Вам попался какой-то кривой код и в этом только ваша вина - вы поленились написать свой, а теперь и в чужом разобраться не можете, а валите все на AVM1, тогда как точно такая же ситуация может быть с AS3.

Я же единожды написал свой код который могу теперь везде использовать и главное полностью понимать что там происходит.

Цитата:
Сообщение от wvxvw Посмотреть сообщение
Даж откопал этот код:
...
И ничего в этом коде неправильного или жутко неоптимизированного нет. А лаги есть.
Ага, как же:

Код:
if (_screenCapture) _screenCapture.dispose();
Это что за строчка? dispose выдает -1, а не ноль, поэтому if будет срабатывать всегда

Код:
_abg = GFX.grid(_root, Stage.width, Stage.height, _screenCapture);
А это что за обрывок кода? Вы приведите пример, который будет исправно раз в 10 запусков вылетать.

Цитата:
Сообщение от wvxvw Посмотреть сообщение
С одной стороны есть рантайм ошибки а с другой - нету, ну вот как же не заметить такой "незначительной" разницы?
А в чем она значительна?

Цитата:
Сообщение от wvxvw Посмотреть сообщение
первые флешевые компоненты были откровенной дрянью
Вовсе нет. Просто в них был доступен исходный код и их можно было как угодно редактировать - вот их и прикрыли.

Цитата:
Сообщение от iNils
wvxvw, ну что ты споришь с человеком, который сравнивает объем кода AS3 не с AS2, а с AS1!
Подумаешь, что треть кода генерится шаблоном, вторая треть сниппетами, а последняя автокомплитом
Ничто не мешает в AS1 использовать шаблоны и сниппеты, да и автокомпликт можно использовать, кому он нравится.

Старый 02.01.2009, 02:04
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 74  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
Цитата:
Это что за строчка? dispose выдает -1, а не ноль, поэтому if будет срабатывать всегда
dispose там вызывается при выполнении if уже, это просто однострочный вариант кода
Код AS3:
if (_screenCapture){
 _screenCapture.dispose();
}
(кстати я противник стиля написания однострочных if-ов без фигурных скобок)

Цитата:
Вовсе нет. Просто в них был доступен исходный код и их можно было как угодно редактировать - вот их и прикрыли.
Flex SDK опенсорсен вообще-то

Цитата:
Ничто не мешает в AS1 использовать шаблоны и сниппеты
Можно и на flasm писать и шаблоны для циклов там сделать и т п, и код будет работать иногда значительно быстрее, чем в as1. Но почему-то с выходом 7го плеера ее не использует никто.

Цитата:
Вам попался какой-то кривой код и в этом только ваша вина - вы поленились написать свой, а теперь и в чужом разобраться не можете
Допустим, я взял проект по созданию нового компонента в давно существующей системе. С кучей страшного кода. Причем до старта проекта я не видел этого кода. Понаписано там на пару человеко-лет. То, что я не переписываю систему с нуля забесплатно и непонятно когда - это лень?

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

С помощью AS1/2 можно зарабатывать деньги. В принципе, он на данный момент востребован. Аналогично с AS3. У каждого своя ниша, они во многом пересекаются, и у AS3 ниша несколько больше. Вот и все.
__________________
4am is time to rock

Старый 02.01.2009, 03:40
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 75  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
А мне просто скучно... вот и отвечу
Код не чужой, а мой =) dispose() ничего не возвращает... и это не кастомный какой-то метод, думаю, что из контекста не сложно догадаться, что _screenCapture - это BitmapData, а _abg - это MovieClip. GFX.grid() создает новый клип и его же и возвращает, более-менее она выглядит вот так:
Код AS1/AS2:
	/**
	 * Draws rectangle filled with bitmap pattern.
	 * @param	clip	parent MovieClip.
	 * @param	w		width Number.
	 * @param	h		height Number.
	 * @param	b		bitmap BitmapData.
	 * @param	lc		line color Number, valid values 0 - 0xFFFFFF
	 * @return	MovieClip
	 */
	public static function grid(clip:MovieClip, w:Number, h:Number, b:BitmapData, lc:Number):MovieClip
	{
		var mc:MovieClip = clip.createEmptyMovieClip("rct" + counter, clip.getNextHighestDepth());
		mc.beginBitmapFill(b);
		if (lc != undefined) 
		{
			mc.lineStyle(1, lc, 100, true, "none");
			w--;
			h--;
		}
		mc.moveTo(0, 0);
		mc.lineTo(w, 0);
		mc.lineTo(w, h);
		mc.lineTo(0, h);
		mc.lineTo(0, 0);
		mc.endFill();
		return mc;
	}
* counter - геттер возвращающий при каждом вызове число на 1 большее, чем при предыдущем. Вобщем, в коде ошибок нету... И вообще сложного в нем ничего нету... да и смысл не в нем, а в том, что либо BlurFilter, либо BitmapData.draw(), либо BitmapData.applyFilter() так в плеере реализован, что при определенном стечении обстоятельств эрорит... и чтобы с этим как-то бороться нужно иметь на руках исходники Флеш плеера, и их править... ну, ка бы, понятно, что я это сделать не могу...

Разница между наличием и отсутствием рантайм ошибок заключается вот в чем:
если у вас нет сообщений о рантай ошибках - вы видите, что програма не работает, а почему - не знаете, и, будете расставлять трейсы там, где вам кажеться, что возможно происходит ошибка... даже в средних размеров проекте это отнимает часы работы. А когда есть рантайм ошибки, вам программа сама говорит, что и где в ней не так, и искать их не нужно, нужно просто откыть код в редакторе и исправить...

компоненты для 7-8 версий Флеша были действительно очень плохо написаны потому, что только на то, чтобы их скомпилировать в strict mode и подключить к проекту нужно было потратить несколько часов (это если знать что делать и где искать). А так можно было и несколько дней провозиться... + работали очень нееффективно + рекомендация от ММ была - не использовать больше 125 компонентов в проекте... а 125 это совсем не много... тоесть, прямо скажем, вообще смешная цифра какая-то...
__________________
Hell is the possibility of sanity

Старый 02.01.2009, 12:50
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 76  
Ответить с цитированием
chingachgoog
Banned
[+4 01.02.09]
[+1 01.02.09]
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
Парни, вы чего? После dispose() вызов битмапы даст -1. Т.е. проверка if (битмапа) вообще глупа, т.к. if (-1) будет выполняться всегда. If вообще тут могли б не ставить - эффект тот же был бы.

Старый 02.01.2009, 13:01
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 77  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
А кто сказал, что эта битмапдата нигде не удаляется? =) Ну ей богу... тот самый первый кусок кода - из FromManager'a чего-нибудь типа FormManager.createAlert(), а удаляется битмапдата в каком-нибудь FormManager.removeAlert(), но опять же, к делу это абсолютно никакого отношения не имеет, т.как даже если бы там было if (true) bitmapData.dispose() или вообще не было этого ифа, ничего бы не изменилось. Эта строчка нужна была для ситуаций, когда алерт создавался несколько раз подряд не вызывая в промежутках removeAlert().
__________________
Hell is the possibility of sanity

Старый 02.01.2009, 13:01
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 78  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
Цитата:
Парни, вы чего? После dispose() вызов битмапы даст -1. Т.е. проверка if (битмапа) вообще глупа, т.к. if (-1) будет выполняться всегда
Неправильно, -1 дадут вызовы свойств:
Код AS1/AS2:
var bmp:BitmapData = new BitmapData(100,100,false,0x000000);
trace(bmp);//[object Object]
bmp.dispose();
trace(bmp);//[object Object]
trace(bmp.width);//-1
А этот if вообще для другого: если битмапа уже создана(и, соответственно, занимает память), то уничтожаем ее содержимое. Все корректно
__________________
4am is time to rock

Старый 02.01.2009, 13:25
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 79  
Ответить с цитированием
chingachgoog
Banned
[+4 01.02.09]
[+1 01.02.09]
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
Цитата:
Сообщение от DarkLight Посмотреть сообщение
А этот if вообще для другого: если битмапа уже создана(и, соответственно, занимает память), то уничтожаем ее содержимое. Все корректно
Ничего корректного: я же писал, что if (-1) в отличии от if (undefined) будет выполняться, т.е. if тут не нужен (dispose() все равно вызывается, даже если битмапа не занимает память) или нужен лишь для того, чтобы dispose() не вызывался самый первый раз (что опять глупо).
Это, конечно, ерунда вроде - но уже показывает тупизну универсального кода - потенциально тут уже может быть косяк.

Старый 02.01.2009, 13:33
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 80  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,601
Записей в блоге: 17
Цитата:
Сообщение от wvxvw Посмотреть сообщение
http://flasher.ru/forum/attachment.p...6&d=1221782525
Ну это то, что сам делал, не бог весть что, просто пример.
http://www.flashdevelop.org/communit...hp?f=13&t=3943
Это шаблон с кучей всего, его бы еще немного до ума довести и получилась бы интересная штука, ну и такого добра много...
Какие страшные шаблоны о_О
В плане того, что мне лень разбираться во Flex SDK и настраивать его на работу с FD, и я компилирую через Flash IDE

Создать новую тему Ответ Часовой пояс GMT +4, время: 03:22.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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