PDA

Просмотр полной версии : короткий код


tiHo
07.04.2006, 02:21
подскажите способы сокращения флеш-кода.

Король
07.04.2006, 02:26
delete

Takato
07.04.2006, 02:34
Сокращать операнды. Например, вместо

function () {}

писать -

fun. () {}

Antares
07.04.2006, 02:38
подскажите способы сокращения флеш-кода.
Мартин Фаулер "Рефакторинг. Улучшение существующего кода".

PinNoKio
07.04.2006, 13:18
delete

:mosking: взависимости от ситуации: если код находиться до курсора - backspace, если после - delete :p

__i
07.04.2006, 13:51
а я знаю более волшебное сочетание клавиш и действий, оптимизирует код до нулевого размера за пол секунды%))

ctrl+A, delete . Затем уходим в монастырь, лучше к шаолиням и там сидя на траве под деревом слушая песни птиц и медитируя можно попасть в нирвану где универсальный код нулевой длинны делает то, что тебе хочеться.......

kayama
07.04.2006, 14:09
а я знаю более волшебное сочетание клавиш и действий, оптимизирует код до нулевого размера за пол секунды%))

ctrl+A, delete . Затем уходим в монастырь, лучше к шаолиням и там сидя на траве под деревом слушая песни птиц и медитируя можно попасть в нирвану где универсальный код нулевой длинны делает то, что тебе хочеться.......
ROFL :D

tiHo
07.04.2006, 14:43
Я вижу никто особо нехочет делится инфой:)
скажу нимного что знаю сам.

объявление типа переменный и функций невлияет на конечный размер файла.

пр:
var gg:Number=1022
одно и тоже что и:
var gg=1022

function _123(arg1:Number,arg2:Number):Number{return arg1+arg2}
одно и тоже что и
function _123(arg1,arg2){return arg1+arg2}

Но зато на этапе компиляции помогает выявить ошибки в типах данных.
я лично непользуюсь, и все ок.

__i
07.04.2006, 14:53
ну могу еще сказать такое: от длинны имени переменной меняеться длинна флешки. т.е если имя будет i1 и i1234567890 то во втором случае флешка будет "тяжелее" на пару байт.

tiHo
07.04.2006, 14:56
ето логично:)

Antares
07.04.2006, 15:31
ну могу еще сказать такое: от длинны имени переменной меняеться длинна флешки. т.е если имя будет i1 и i1234567890 то во втором случае флешка будет "тяжелее" на пару байт.
Вы случаем не из правительства РФ?

Antares
07.04.2006, 15:33
Также есть подозрение, что если кружочек на сцене больше, то и размер ролика больше :))))))

PinNoKio
07.04.2006, 16:00
Также есть подозрение, что если кружочек на сцене больше, то и размер ролика больше :))))))

:D пять балов!!

Samodelkin
07.04.2006, 16:08
А если этот кружочек и вовсе не кружочек, то ваще беспредел.

Вывод:

Рисуем только маленькие кружочки.

Все переменные из одной буквы.

kayama
07.04.2006, 16:37
И вообще рисуем все объекты размерами 2x2, потом увиличиваем до нужных, иначе - ази...

KUZEN
07.04.2006, 19:02
И это упрощение , мдя далеко пойдём ))) В макрамедии мучались мучались , а народ раз и упростил как будто это просто так сделали )))

KUZEN
07.04.2006, 19:02
Также есть подозрение, что если кружочек на сцене больше, то и размер ролика больше :))))))
Ну если только кружочек растровый )))

__i
07.04.2006, 19:09
Также есть подозрение, что если кружочек на сцене больше, то и размер ролика больше :))))))
ну что же, давай попробуем создали файл и пишем:

var i=10;

компилим, смотрим - размер = 49 байт

var i1234567890=10;

компилим, смотрим - размер = 59 байт

блин откуда же этит 10 байт взялись? не подскажешь?

для ленивых примеры во вложении.

tiHo
07.04.2006, 20:02
ясно дело откуда они взялися, в переменной на 10 символов больше:)
ну ето же логично:)(снова я)

PinNoKio
07.04.2006, 20:25
ну что же, давай попробуем создали файл и пишем:

var i=10;

компилим, смотрим - размер = 49 байт

var i1234567890=10;

компилим, смотрим - размер = 59 байт

блин откуда же этит 10 байт взялись? не подскажешь?

для ленивых примеры во вложении.

если я правильно его понял, он именно это и говорил..

mr.N
07.04.2006, 20:28
Да, вы в чём-то правы, если переменных в ролике около 100, то сократив все, можно порядочно выиграть в коде.
Но опять же основной способ - это меньше кода. То есть не пользуемся старыми операторами, командами. Некоторые до сих пор используют TellTarget, это долго и громоздко.

artcraft
07.04.2006, 21:06
если в коде 100 переменных, то ради читаемости кода - можно пожертвовать парой байт :~)

artcraft
07.04.2006, 21:08
Я, частенько, готов пожертвовать даже десятком килобайт :~)

KUZEN
07.04.2006, 21:14
Я, частенько, готов пожертвовать даже десятком килобайт :~)
Согласен , а если этих строк неск тысяч, то вообще ничего сокращать не надо , лучше осмысленно всё называть что бы потом просто напросто не запутаться ... когда всё готово если есть желание можно заменой всё позаменять на более короткое

artcraft
07.04.2006, 21:22
Вот-вот, find&replace никто не отменял :~) но заниматься этим - маразм :~)

__i
07.04.2006, 21:25
ну я же не заставляю никого писать однобуквенные переменные %), просто рассказал что от этого тоже зависит. Полезно для конкурсов "кто круче в 1К чето запихнет" и бесполезно в жизни %)

KUZEN
07.04.2006, 21:26
ну я же не заставляю никого писать однобуквенные переменные %), просто рассказал что от этого тоже зависит. Полезно для конкурсов "кто круче в 1К чето запихнет" и бесполезно в жизни %)
Да это и так было понятно чем больше символов тем больше вес

PinNoKio
07.04.2006, 21:34
а о чем тогда спор(дисскусия)

KUZEN
07.04.2006, 23:15
а о чем тогда спор(дисскусия)
В том и дело что не о чём ))) Да конечно можно решить определенную задачу используя более рациональное решение, но оно уж никак не зависил от длинны названий переменных

__i
08.04.2006, 13:16
Да это и так было понятно чем больше символов тем больше вес
ну как тебе сказать.
напиши тот же код в Си или Делфи - размер проги будет один и тот же.

ладно разговори не об этом...

вот пару еще примеров "тонкостей"(для некоторых это само собо разумеющиеся)
при работе с массивом в цикле не пишем так:

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))