Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   Подскажите - как узнать наличие файла? (http://www.flasher.ru/forum/showthread.php?t=72580)

TryToBeASuperStar 30.11.2005 14:38

Подскажите - как узнать наличие файла?
 
Нужно загрузить файл some.jpg
Какой код надо написать, чтобы до загрузки flash проверил есть ли вообще этот файл? И вернул значение false/true?

etc 30.11.2005 15:58

Обыкновенным MovieClipLoader можно... при событии onLoadError понимаем, что или файла нет или нет коннекта...

TryToBeASuperStar 30.11.2005 16:43

Это, я так понимаю, не одна строка... а 3?
А в одну строку можно как-нибудь?

etc 30.11.2005 16:56

Можно. Но зачем одной?
my_mcl.onLoadError = function(target_mc) {target_mc.loaded=false;}
:)

TryToBeASuperStar 30.11.2005 17:07

Я просто хотел построить структуру кода так:

if(file.jpg=exist) {
код код код
}

Большое спасибо за варианты, но может можно как-то ещё проще(короче)?...

etc 30.11.2005 17:09

Не думаю. Это не php всё-таки...

TryToBeASuperStar 30.11.2005 17:12

АА!! Как меня flash порою РАЖДРАЖАЕТ!!!


Может всё же кто-нить знает какой-нить хитрий код в одну строку для проверки на наличие файла???

etc 30.11.2005 17:14

А зачем тебе именно в одну строку, я не понимаю...?

Antares 30.11.2005 17:28

Самоцель. Есть люди, суть вопросов которых -- "посмотреть, как они извернутся". Я помню недавно парень задавал вопрос "как максимально коротко создать n мувиклипов". При этом никаких других условий не было.

Победил мой вариант, который вообще машину вешал бесконечным while ;))

TryToBeASuperStar 30.11.2005 18:42

Чем код короче - тем он быстрее работает, тем легче в нём ориентироваться, и тем проще его редактировать. (из основ программинга)


Так что, другихх вариантов нету???

etc 30.11.2005 18:47

Цитата:

Сообщение от TryToBeASuperStar
Чем код короче - тем он быстрее работает, тем легче в нём ориентироваться, и тем проще его редактировать. (из основ программинга)


Так что, другихх вариантов нету???

Насчёт короче ты не прав. Это тебе кажется, что быстрее. Машине кажется по-другому. Что для тебя удобно редактировать - машине неудобно.

Antares 30.11.2005 19:09

Цитата:

Сообщение от TryToBeASuperStar
тем он быстрее работает

Не факт

Цитата:

Сообщение от TryToBeASuperStar
тем легче в нём ориентироваться

Не факт. Конструкции типа var aLNumber = b > с || cond1 ? cond2%2 > 5 ? 6 : 8 : 10; определенно одна строка, а не 15, как было бы с if-else, но...

Цитата:

Сообщение от TryToBeASuperStar
тем проще его редактировать. (из основ программинга)

Откуда такие основы? Кто так мастерски обобщил?

До маразма доходить не надо. Аха.

TryToBeASuperStar 30.11.2005 19:13

Эт в теории.
Начинали мы с ассемблера, поэтому представление имеем.
В абсолютном большинстве случаев короткий код (меньше действий) работает быстрее длинного кода (больше действий).
То есть одно действие почти всегда делается быстрее, чем два действия, в основном благодаря оптимизации компилятором/в (тоесть даже обычный код 1*10 при правильном компиляторе сработает на такт быстрее, чем казалось бы более простой 2+3+5). Бывают редкие случаи, когда процессор долго жуёт один вид одинаковых действий т.к. они забивают все конвееры, а можно было бы их решать другими методами используя другие конвееры, но это уже не в случае 1-2 действий и обычно относится к специализированным процам типа DSP.
Хз как оптимизируется flash, но надеюсь - также.


Давайте к теме вернёмся - какие ещё есть варианты?

etc 30.11.2005 19:21

Больше нет.

Antares 30.11.2005 19:27

Ууууу.... конвееры, регистры... А про временную сложность мы забыли...

TryToBeASuperStar 30.11.2005 19:33

>> Antares
Кто-то мне обещал вчера пример-исходничек... на который времени не хватило, видимо... но на смену имиджа времени-то хватило... так что давайте без самодовольных уканий...

Если очень хотца - давайте разберём ассемблерный код на примере... :D где несколько действий (положим до 3) будут расчитываться быстрее 1... также напишите полную информацию о компиляторе... версия, параметры, ну и т.д. вы же типа в курсе... ;)

===========================

Давайте я с начала объясню задачу более подробно, быть может вы подскажете мне более правильный для flash вариант...

Есть много дублированных кнопок root->mc->button1/2/3/4....
Наводим на кнопку buttonX и код внутри кнопки определяет её имя X и загружает X.jpg в мувик root->img.
Мне надо, чтобы если нет файла X.jpg то img._visible=false.

Может как-то можно сделать иначе?

etc 30.11.2005 19:44

Может в другой теме? Скачай flasm и посмотри в ASM-Code все твои процедуры...

Antares 30.11.2005 19:52

я тебе просто пример приведу. Что быстрее:

a_mc._x++;
a_mc._x++;

2 строки

new Tween(a_mc, "_x", Regular.easeOut, a_mc._x, a_mc._x + 2, 1, true).start();

одна строка.

Что больше загрузит процессор?

TryToBeASuperStar 30.11.2005 23:10

ну-ну... ты ещё синтаксиса прибавь... :D

Напоминаю - я написал "чем код короче - тем он быстрее работает", а не чем меньше строк... читай внимательнее ;)

Ребят, это явно не ваша стезя, давайте луше не будемв неё лезть.

===================================

А конкретно в этой теме я просто надеялся найти действие-тестер на присутствие, типа if (x.jpg=!exist){код}...

Ладно, если нет других вариантов - можно тему закрывать...

P.S.
И опять flash меня разочаровывает :(

Nirth 01.12.2005 00:24

флэш дерьмо, Антарес и ETC нубы =)

TryToBeASuperStar 01.12.2005 03:14

Ты давно флэш изучаешь - доверяю твоему мнению...

p.s. Спасибо ETC за подсказки.

etc 01.12.2005 12:22

Цитата:

Сообщение от Nirth
флэш дерьмо, Антарес и ETC нубы =)

Да ужжжж... между тем на вопросы отвечаем мы, а не задаём их. Не говоря уже о том, что не надо думать, что там так, значит здесь - тоже самое. Отнюдь.


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

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