Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Хранение переменных - двумерный Массив??? (http://www.flasher.ru/forum/showthread.php?t=54231)

Ламер_Флаша 31.01.2004 13:04

Хранение переменных - двумерный Массив???
 
Здравствуйте,


есть задача:
Дублируется неисчеслимое множество MovieClip'ов. При создании для каждого MovieClip надо записать 2-3 числовых значения, которые потом будут вызываться или по которым будет происходить поиск.
Нечто вроде этого:
Цитата:

for (counter=0; counter<100; counter++) {
duplicateMovieClip ("Original", "Original" add counter, counter);
set ("A" add counter, 345453444);
set ("B" add counter, 456456456);
set ("C" add counter, 344353462);
}
Смущает в таком методе вот что:
1. Не больше ли места в памяти занимают такие переменные и не выше ли нагрузка на проц, чем двумерный массив, в котором первый столбец - порядковый номер (counter), и далее три столбца со значениями (A,B,C) ???
2. При использовании массива возможен ли поиск внутри него по одному столбцу ??? (Типа надо найти A=34535353 и выдать какой это номер (counter). Такое во flash возможно???)


Заранее благодарен!

Ламер_Флаша 01.02.2004 15:11

?????

Nox Noctis 01.02.2004 15:47

Re: Хранение переменных - двумерный Массив???
 
Цитата:

Оригинал написал(а) Ламер_Флаша
1. Не больше ли места в памяти занимают такие переменные и не выше ли нагрузка на проц, чем двумерный массив, в котором первый столбец - порядковый номер (counter), и далее три столбца со значениями (A,B,C)
каким образом, если не секрет, количество переменных может нагрузить проц? :)) единственное что тут может "нагрузиться" - это память которой пользуется плеер. но если тебе удастся создать СТОЛЬКО переменных и клипов, что плееру не хватит памяти - мне интересно за каким чертом тебе такое количество понадобилось?

Цитата:

Оригинал написал(а) Ламер_Флаша
При использовании массива возможен ли поиск внутри него по одному столбцу ??? (Типа надо найти A=34535353 и выдать какой это номер (counter). Такое во flash возможно???)
мне послышалось, или кто-то говорил что у него есть общее представление о том что можно и чего нельзя сделать во флэше?

есть массив. есть цикл for. перебираем все элементы нужного столбца массива и сравниваем с заданным значением каждый из элементов. оформляем все это в виде функции.

я понятно излагаю ? :)

Ламер_Флаша 02.02.2004 02:20

Цитата:

мне послышалось, или кто-то говорил что у него есть общее представление о том что можно и чего нельзя сделать во флэше?

есть массив. есть цикл for. перебираем все элементы нужного столбца массива и сравниваем с заданным значением каждый из элементов. оформляем все это в виде функции.

я понятно излагаю ? :)
Излогаешь ты понятно. Жаль, только, конкретно кодов не пишешь ;) :(
2. Видимо я непонятно излагаю... я имел ввиду есть ли такая ВСТРОЕННАЯ функция для массива как поиск по столбцу/столбцам?? Типа задаешь "найти=10, столбцы=A,B,C" - возвращает порядковый номер и столбец. Видимо, такой функции нет. В этом случае проще с переменными.

P.S.
А на счет "проца" - есть такое понятие, как процессорная инструкция (или кто как называет), когда одна функция выполняется за один такт, т.к. является той самой инструкцией (типа MMX, SSE и т.д.). Так вот, если функция СТАНДАРТНАЯ (массив), то она с бОльшей вероятностью использует подобные инструкции - тем самым снижается нагрузка на проц и ускоряется счет ;)

Nox Noctis 02.02.2004 02:44

Цитата:

Оригинал написал(а) Ламер_Флаша
есть ли такая ВСТРОЕННАЯ функция для массива как поиск
так бы и спросил сразу..
нет, таких функций нет, есть только встроенная сортировка массива, к которой при необходимости можно добавить нестандартную функцию задающую правило сортировки.

Цитата:

Оригинал написал(а) Ламер_Флаша
есть такое понятие, как процессорная инструкция
да, есть. хвалю. только это понятие здесь АБСОЛЮТНО не при чем :))

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

Оригинал написал(а) Ламер_Флаша
одна функция выполняется за один такт, т.к. является той самой инструкцией
инструкция процессора и "функция" на языке высокого уровня - это как унитаз и очистные сооружения.
Цитата:

Оригинал написал(а) Ламер_Флаша
если функция СТАНДАРТНАЯ (массив)
очень похоже, что ты не отличаешь друг от друга "функцию", "массив" и "инструкцию процессора". плохо дело...

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

Ламер_Флаша 02.02.2004 03:25

Цитата:

да, есть. хвалю. только это понятие здесь АБСОЛЮТНО не при чем :))
"хвалю"... давай вот без этого... http://www.flasher.ru/forum/sets/fla...cons/icon8.gif


Цитата:

очень похоже, что ты не отличаешь друг от друга "функцию", "массив" и "инструкцию процессора". плохо дело...
Ню-ню...
Если ты не в курсе, то любой код исполняет кто? ПРОЦЕССОР! Ну так вот если этот код был написан программером - то он при компиляции преобразуется во что? В Х*РНЮ всякую! А вот если этот код был написан СОЗДАТЕЛЕМ языка (например C++), то очень высока вероятность, что функция основана/адаптирована под процессорные инструкции/расширения.

Давай эту тему лучше закроем, дабы имидж твой не портить.


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

Вот смотри сколько мне понадобилось вас всех убалтывать, только ради того, чтобы получить ответ из двух слов "Лучше массив". :-/ На том спасибо.
Кстати, а "списки" (массивы неопределённой длины автоматически удлиняющиеся и укорачивающиеся в памяти) в Flash есть?

Nox Noctis 02.02.2004 03:54

Цитата:

Оригинал написал(а) Ламер_Флаша
Давай эту тему лучше закроем, дабы имидж твой не портить.
а поздняк :)) все уже украдено - до вас.

ты можешь долго и подробно рассказывать скока ты всего знаешь про си и работу процессора, но это тут НЕ ПРИ ЧЕМ. понимаешь? если ты докажешь что очень круто знаешь японский - это едва ли тебе поможет в суверенной республике буркина фасо.

то о чем говоришь ты - это оптимизация внутренней работы виртуальной машины флэша, ActionScript'ом это не сделать, можно только оптимизировать сами команды для виртуальной машины.

Цитата:

Оригинал написал(а) Ламер_Флаша
На том спасибо.
заметь, мой первый пост содержал всю необходимую информацию. он не содержал только одного - кода. если бы ты написал прямо "напишите мне рабочий код" - это было бы понятно. но ты ведь спросил о теории. и в прошлой теме объявил что азы тебе объяснять не нужно - нужна теория. ну и как это понимать-то?

Цитата:

Оригинал написал(а) Ламер_Флаша
Кстати, а "списки" (массивы неопределённой длины автоматически удлиняющиеся и укорачивающиеся в памяти) в Flash есть?
во флэше запросто создаются переменные прямо в момент обращения к ним. так что любой массив можно считать "автоматически удлинняющимся"... и вообще тут полная халява - есть общий вид объектов, из которых лепится почти все :)

Ламер_Флаша 02.02.2004 04:06

1.
Цитата:

заметь, мой первый пост содержал всю необходимую информацию.
Пожалуйста цитату из первого поста в этой теме, в которой написано "что лучше использовать - var'ы или массив". ;)

2.
Цитата:

и в прошлой теме объявил что азы тебе объяснять не нужно - нужна теория. ну и как это понимать-то?
Цитата из "прошлой темы":
Общее представление о задачах и Flash'е у меня есть, потому прошу помочь именно с кодом.
;)

3.
Цитата:

и вообще тут полная халява
Я привык говорить "Дайте мне одну буханку ржаного хлеба".
А тут можно: "Черного подкинь, дедуля/бабуля", "Кирпич ржаной одна штука", "Дай чернушки краюху" и т.д. Но при этом хлеб подостыл и нет ни булок, ни пекаря...

Даже не знаю, радоваться этому или нет... :D

Nox Noctis 02.02.2004 04:26

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

2. так ты разберись уже чего ты знаешь-то :) а то получается что ты ставишь задачу и просишь готовый код. если бы я пришел к примеру на сишный форум и сказал что хочу сделать длл, которая будет делать то, то и то, но не в курсе какой код писать - как бы ты отреагировал ? :)

3. а этой халявой тоже надо пользоваться грамотно. тогда все будет удобно и легко :) легче чем во "взрослых" языках :)

Fisher 02.02.2004 11:44

Вложений: 1
Не собираюсь вникать в тонкости - просто скажу что на вопросы о производительности проще и плодотворнее отвечать самому.
В атаче элементарный счетчик показывающий реальный фпс. Такой любой маломальски грамотный флэшер сам напишет за 5 минут. Далее так - этот счетчик ложиться в тестируемую флэшку, фпс ставим на предел - 120 и - путь открыт к успеху :)
Модифицируем код и следим как изменяеться производительность.

Ламер_Флаша 02.02.2004 14:58

Nox Noctis
1. Не то, чтобы нагрузить кол-вом, а наоборот - снять нагрузку за счет использования стандартных (массив) оптимизированных функций.
2. Ууу... там все еще хуже %))) Предложили бы скачать MSDN, купить книгу "Основы программирования на C++ под DOS 7", итд, да еще поиздевались бы... http://forum.ixbt.com/lol.gif

А вообще от чела зависит - я, например, не люблю ля-ля не в тему разводить (исключение - когда "доказульки", как сейчас, начинаются). Есть Вопрос. Если мне нравится как его задали, ник вопрашающего, да и вообще настроение хорошее :) - стараюсь дать подробный ответ в соот. с вопросом.
Если плохое настроение - начинаю доказывать убогость вопрашающего... знаю, нехорошо... но иногда очень хочется :)
Ответ типа "гуляй в поиск" даю редко. Вобщем либо хорошо отвечу, либо хорошо опущу :D

Fisher
Не могли бы Вы прикрепить данный файл еще и в тему про FPS ?
Спасибо! http://www.flasher.ru/forum/sets/fla...cons/icon5.gif


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

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