Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Флейм (http://www.flasher.ru/forum/forumdisplay.php?f=53)
-   -   короткий код (http://www.flasher.ru/forum/showthread.php?t=78013)

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

Цитата:

Сообщение от tiHo
подскажите способы сокращения флеш-кода.

Мартин Фаулер "Рефакторинг. Улучшение существующего кода".

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

Цитата:

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

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

Цитата:

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

Вы случаем не из правительства РФ?

Antares 07.04.2006 15:33

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

PinNoKio 07.04.2006 16:00

Цитата:

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

: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

Цитата:

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

Ну если только кружочек растровый )))

__i 07.04.2006 19:09

Вложений: 1
Цитата:

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

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

var i=10;
компилим, смотрим - размер = 49 байт
Код:

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

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

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

tiHo 07.04.2006 20:02

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

PinNoKio 07.04.2006 20:25

Цитата:

Сообщение от __i
ну что же, давай попробуем создали файл и пишем:
Код:

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
Я, частенько, готов пожертвовать даже десятком килобайт :~)

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

artcraft 07.04.2006 21:22

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

__i 07.04.2006 21:25

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

KUZEN 07.04.2006 21:26

Цитата:

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

Да это и так было понятно чем больше символов тем больше вес

PinNoKio 07.04.2006 21:34

а о чем тогда спор(дисскусия)

KUZEN 07.04.2006 23:15

Цитата:

Сообщение от PinNoKio
а о чем тогда спор(дисскусия)

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

__i 08.04.2006 13:16

Цитата:

Сообщение от KUZEN
Да это и так было понятно чем больше символов тем больше вес

ну как тебе сказать.
напиши тот же код в Си или Делфи - размер проги будет один и тот же.

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

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

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



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

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