Просмотр полной версии : короткий код
подскажите способы сокращения флеш-кода.
Сокращать операнды. Например, вместо
function () {}
писать -
fun. () {}
подскажите способы сокращения флеш-кода.
Мартин Фаулер "Рефакторинг. Улучшение существующего кода".
PinNoKio
07.04.2006, 13:18
delete
:mosking: взависимости от ситуации: если код находиться до курсора - backspace, если после - delete :p
а я знаю более волшебное сочетание клавиш и действий, оптимизирует код до нулевого размера за пол секунды%))
ctrl+A, delete . Затем уходим в монастырь, лучше к шаолиням и там сидя на траве под деревом слушая песни птиц и медитируя можно попасть в нирвану где универсальный код нулевой длинны делает то, что тебе хочеться.......
а я знаю более волшебное сочетание клавиш и действий, оптимизирует код до нулевого размера за пол секунды%))
ctrl+A, delete . Затем уходим в монастырь, лучше к шаолиням и там сидя на траве под деревом слушая песни птиц и медитируя можно попасть в нирвану где универсальный код нулевой длинны делает то, что тебе хочеться.......
ROFL :D
Я вижу никто особо нехочет делится инфой:)
скажу нимного что знаю сам.
объявление типа переменный и функций невлияет на конечный размер файла.
пр:
var gg:Number=1022
одно и тоже что и:
var gg=1022
function _123(arg1:Number,arg2:Number):Number{return arg1+arg2}
одно и тоже что и
function _123(arg1,arg2){return arg1+arg2}
Но зато на этапе компиляции помогает выявить ошибки в типах данных.
я лично непользуюсь, и все ок.
ну могу еще сказать такое: от длинны имени переменной меняеться длинна флешки. т.е если имя будет i1 и i1234567890 то во втором случае флешка будет "тяжелее" на пару байт.
ну могу еще сказать такое: от длинны имени переменной меняеться длинна флешки. т.е если имя будет i1 и i1234567890 то во втором случае флешка будет "тяжелее" на пару байт.
Вы случаем не из правительства РФ?
Также есть подозрение, что если кружочек на сцене больше, то и размер ролика больше :))))))
PinNoKio
07.04.2006, 16:00
Также есть подозрение, что если кружочек на сцене больше, то и размер ролика больше :))))))
:D пять балов!!
Samodelkin
07.04.2006, 16:08
А если этот кружочек и вовсе не кружочек, то ваще беспредел.
Вывод:
Рисуем только маленькие кружочки.
Все переменные из одной буквы.
И вообще рисуем все объекты размерами 2x2, потом увиличиваем до нужных, иначе - ази...
И это упрощение , мдя далеко пойдём ))) В макрамедии мучались мучались , а народ раз и упростил как будто это просто так сделали )))
Также есть подозрение, что если кружочек на сцене больше, то и размер ролика больше :))))))
Ну если только кружочек растровый )))
Также есть подозрение, что если кружочек на сцене больше, то и размер ролика больше :))))))
ну что же, давай попробуем создали файл и пишем:
var i=10;
компилим, смотрим - размер = 49 байт
var i1234567890=10;
компилим, смотрим - размер = 59 байт
блин откуда же этит 10 байт взялись? не подскажешь?
для ленивых примеры во вложении.
ясно дело откуда они взялися, в переменной на 10 символов больше:)
ну ето же логично:)(снова я)
PinNoKio
07.04.2006, 20:25
ну что же, давай попробуем создали файл и пишем:
var i=10;
компилим, смотрим - размер = 49 байт
var i1234567890=10;
компилим, смотрим - размер = 59 байт
блин откуда же этит 10 байт взялись? не подскажешь?
для ленивых примеры во вложении.
если я правильно его понял, он именно это и говорил..
Да, вы в чём-то правы, если переменных в ролике около 100, то сократив все, можно порядочно выиграть в коде.
Но опять же основной способ - это меньше кода. То есть не пользуемся старыми операторами, командами. Некоторые до сих пор используют TellTarget, это долго и громоздко.
artcraft
07.04.2006, 21:06
если в коде 100 переменных, то ради читаемости кода - можно пожертвовать парой байт :~)
artcraft
07.04.2006, 21:08
Я, частенько, готов пожертвовать даже десятком килобайт :~)
Я, частенько, готов пожертвовать даже десятком килобайт :~)
Согласен , а если этих строк неск тысяч, то вообще ничего сокращать не надо , лучше осмысленно всё называть что бы потом просто напросто не запутаться ... когда всё готово если есть желание можно заменой всё позаменять на более короткое
artcraft
07.04.2006, 21:22
Вот-вот, find&replace никто не отменял :~) но заниматься этим - маразм :~)
ну я же не заставляю никого писать однобуквенные переменные %), просто рассказал что от этого тоже зависит. Полезно для конкурсов "кто круче в 1К чето запихнет" и бесполезно в жизни %)
ну я же не заставляю никого писать однобуквенные переменные %), просто рассказал что от этого тоже зависит. Полезно для конкурсов "кто круче в 1К чето запихнет" и бесполезно в жизни %)
Да это и так было понятно чем больше символов тем больше вес
PinNoKio
07.04.2006, 21:34
а о чем тогда спор(дисскусия)
а о чем тогда спор(дисскусия)
В том и дело что не о чём ))) Да конечно можно решить определенную задачу используя более рациональное решение, но оно уж никак не зависил от длинны названий переменных
Да это и так было понятно чем больше символов тем больше вес
ну как тебе сказать.
напиши тот же код в Си или Делфи - размер проги будет один и тот же.
ладно разговори не об этом...
вот пару еще примеров "тонкостей"(для некоторых это само собо разумеющиеся)
при работе с массивом в цикле не пишем так:
for (i = 0; i<my_array.length....){
.....
}
а так
var c = my_array.length
for (i = 0; i<c....){
.....
}
т.е. на каждом шаге не вычисляем длинну массива, для маленьких массивов это не критично, а воткните 3 по 100k %)
Ну и второй вариант это "сокращать" пути к объектам если делаем что-то в циклах.
_root.mc.mc.myVar
заменяем перед циклом на
с = _root.mc.mc
В данном случае флеш не тратит время на прощет пути, и опять экономим время.
Как пример вставте этот код в первый кадр и посмотрите че будет
_root.mc.mc.myVar = 0;
t = new Date().getTime();
for(i = 0; i<50000; i++){
_root.mc.mc.myVar ++
}
trace('long path - '+ (new Date().getTime()-t))
_root.mc.mc.myVar = 0;
c = _root.mc.mc
t = new Date().getTime();
for(i = 0; i<50000; i++){
c.myVar ++
}
trace('short path - '+(new Date().getTime()-t))
var ara = new Array(50000)
t = new Date().getTime();
for(i = 0; i<ara.length; i++){
ara[i]=i;
}
trace('calc length - '+(new Date().getTime()-t))
t = new Date().getTime();
c = ara.length
for(i = 0; i<c; i++){
ara[i]=-i;
}
trace('pre calc length- '+(new Date().getTime()-t))
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.