Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Дописывание и замена элементов массива, а также сцены (http://www.flasher.ru/forum/showthread.php?t=121188)

ZlobaZl 09.02.2009 21:34

Дописывание и замена элементов массива, а также сцены
 
В массив запихиваю 10 классов. Допустим с течением времени 5 тый элемент Нужно удалить (со сцены из массива). Вопрос 1) как организовать удаление данного класса из массива котором он лижыт и со сцены ролика?


2) Допустим 5того элемента нету как записать на 5тую позицию объект а не в конец?? (если добавляется на пустое место то отлично как тогда в конец добавить?

3) когдато практиковал такую тему как:
Если надо было удалить 5тый объект удалял насамом деле последний элемент а 5тый перемещал на место последнего с передачей всех характеристик. Очень класно получалось т.к. приходилось проверять только реальные объекты а не пустоты) Дак вопрос такой: Имеет смысл делать такое в моем случае? И если имеет то нужно для этого дела делать спеиальную функцию делать или можно обойдись и без таких страстей??

Добавлено через 1 минуту
И в догонку 4) Как очистить полностью массив?


Спасибо заранее) понимаю вопросы из серии песочницы но всетаки буду очень благодарен

Добавлено через 33 минуты
и 5)тый Чем отличается Array от Object когда лучше что использовать? Какие у них особенности?

BlooDHounD 09.02.2009 22:54

1-4) вам нужен метод splice
5) первый наследник второго.

dimarik 09.02.2009 23:45

Цитата:

Сообщение от ZlobaZl (Сообщение 797011)
В массив запихиваю 10 классов

"В 10-м классе запихивал массив". Уточните терминологию.

Работа с массивами представлена классом Array.

Погуглите на тему "Структуры данных" и "Типы данных".

PS. Здесь приветствуется русский язык.

ZlobaZl 10.02.2009 01:30

ыыы что за чудные ответы...)))

мда)

Цитата:

"В 10-м классе запихивал массив". Уточните терминологию.
Ну понятно что со школой не связанно) (если только специально абсурдом не страдать)
В массив записываю объекты в инстанс нейме у них прописан соответствующий класс.

Цитата:

Погуглите на тему "Структуры данных" и "Типы данных".
Погуглить каждый в свое время начнет. Но сюда я написал не для того чтобы меня gotoAndPlayели на гугли.Так, что парни я не понимаю смысл кому то отвечать если вы впринцепе на это не настроенны??? А когда отвечаете лиж бы так как говориться отмазаться то знаете как пливок в рожу, извените... ы нарушение 7го пункта правил блин))
Я понимаю что никто здесь никому не обязан но ненада тогда напрягаться, я (да и многие начинающие) жду нормальных ответов. Или хотябы пошлите на раздел полностью отвечающий на этот вопрос.
А то получается как на вопрос "Как решается эта задача?" получаешь ответ "Легко"


зы Чето меня занесло) в общем BlooDHounD и dimarik не берите на свой счет просто я немного подгеперболизировал тему) Но всеравно кстате никакого развернутого ответа я непрочел) с которой можно завести ту или иную беседу)

ramshteks 10.02.2009 02:32

просто, ты как и многие начинающие, приходят сюда с кучей вопросов на которые уже сотню раз отвечали. Так как ты начинающий то должен был понимать что вопросы возникающие у тебя как у новичка созникали у всех, а отсюда следует что стоит погуглить и найти массу информации по интересующей теме. Поищи на данном форуме здесь все есть. просто не поленись.

ZlobaZl 10.02.2009 04:03

Лана. Буду сам пока уже сам себе отвечать на вопросы. Вы можете просто говорить прильно я понял или нет.

В общем Object как написано сохраняет все ассоциативные элементы, что значит что мы создаем "поле классов" (это мой жаргон по типу поле вещественных чисел и т.д.)) в которые входит множество разных классов. Например вот я делаю игру там присутствуют и турели и космические объекты (такие как астероиды, истребители и т.д.) Мы пишем для Турелей класс Class_tyrel; для астероидов Class_aster; Истребители Class_ship После чего их нада объединить в один мир для чего запихиваем все в общий Object: Object_spase. тот объект будет иметь 3 разных ассоциативных класса Астероидов Турелей Космических кораблей.

В array можно было только 1 тип данных вносить из-за чего случались сложности соединить все в один мир.

Поэтому в данном примере мы используем object.

ТАК?

Долго искал немогу покать как для Object будет выглядить синтаксис добавления?

Яски 10.02.2009 09:10

Нифига не понял, можете не использовать собственный жаргон, а писать так, как принято у всех?
Классы это классы или типы, из классов могут быть созданы инстансы или объекты.
Array отличается от Object тем, что предназначен для хранения множества данных. Array может работать в двух режимах как индексированный массив и ассоциативный массив. В индексированном массиве ключи это числа, в ассоциативном ключи это строки. Object же это динамический класс, т.е. к нему можно добавлять поля прямо во время работы приложения, в этом он схож с ассоциативным массивом, и к полям Object'а можно обращаться через точку, а не обязательно через квадратные скобочки. Еще есть такой класс как Dictionary, ключами которого, может быть объект любого типа. И немного кода.
Код AS3:

// Создаем индексированный массив
var array:Array = new Array();
// Добавление элемента в конец
array.push("one");
// Замена первого элемента
array[1] = "two";
// Удаление последнего элемента
array.pop();
// Получение длины массива
array.length
// Очистка массива
array.length = 0;
 
// Создание ассоциативного массива
array = new Array();
// Добавление элемента
array["one"] = "one";
// Замена элемента
array["one"] = "two";
// Удаление элемента
delete array["one"];
// Получение длины
array.length    // не будет работать для асс. массива
 
// Object или любой другой динамический класс
var object:Object = new Object();
// Добавление элемента
object["one"] = "one"
// Замена элемента
object["one"] = "two"
// Или так
object.one = "two";
// Удаление элемента
delete object["one"];
 
// Dictionary
.........
// А здесь в справку, мне лень писать дальше, в справке все это есть и даже больше.


ZlobaZl 10.02.2009 11:44

Тогда я не понял почему советуется использовать object вместо array? И как тогда будет представляться информация в массиве если в него добавить не просто "one"
или "two" а класс (непонимаю что я не правильно говорю. В общем в моем прецтавлении класс это например если создать мувеклип с идентификатором классом после чего в классе к нему добавляется пара новых придуманных свойств)?


Цитата:

Классы это классы или типы, из классов могут быть созданы инстансы или объекты.
Можете поподробнее объеснить что значит Классы это классы и типы и как из ни х создать инстансы??? (это случаем тоже не "собственный жаргон"???)

BlooDHounD 10.02.2009 12:01

Яски, не знаете - не дезинформируйте человека. ассоциативных массивов во флэше нету.

ZlobaZl, исходя из строчки выше и советуется. так как вам не понадобится функционал класса Array, для создания "ассоциативных" массивов. так как работать он будет совсем не так, как должен. сделать Вы можете обычный хэш. причём, при использовании первого или второго, он будет выглядеть абсолютно одинакового.

dimarik 10.02.2009 12:05

В массив, скорее всего, Вы не классы "запихиваете", а "инстансы или объекты", инстанцированные от класса Class_tyrel и иже с ним.

Цитата:

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

ZlobaZl 10.02.2009 20:35

Цитата:

ZlobaZl, исходя из строчки выше и советуется. так как вам не понадобится функционал класса Array, для создания "ассоциативных" массивов. так как работать он будет совсем не так, как должен. сделать Вы можете обычный хэш. причём, при использовании первого или второго, он будет выглядеть абсолютно одинакового.
"так как работать он будет совсем не так, как должен" Дак это как???

Кстате тут поразмышлял на тему "определиться с терминологией" Дело в том что в физике есть понятие тело в алгебре тала не используют обычно говорят о объектах. Дак вот объект в моем понимании именно мувиклип с заданным для него классом которое унаследовано от Мувиклипа. Следовательно объект с написанным для него классом это объект (иначе говоря картинка на сцене) который имеет какие то дополнительные параметры. Моя логика использования array основывалась на том что мы записываем как оказалось адреса (идентификаторы (они же классы)) в ячейки этого массива после чего вызовом for each можем пробижаться по всем объектам и просчитать их будующеее. Что же будет (а темболее как что вызывать) в object я так и не понял...

ramshteks 10.02.2009 21:18

Цитата:

адреса (идентификаторы (они же классы))
круто... все уровнял. Терминологией физики вы не будете изъясняться в математике. Так же тут. Раз вы лезете в программирование то очевидно нужно придерживаться этой терминологии. И не как иначе, можно конечно гнуть палку на уровне, да какая разница вы меня поняли, но в таком случае будете на тыкаться на стену непонимания. Класс идентификатор и адрес разные вещи

Класс это абстрактный тип данных, который содержит в себе данные, и методы для их обработки.
Идентификатор это просто слово буква набор букв, который ставится в соответствие некоему адресу в памяти на этом адресе может быть все что угодно: Функция, переменная, массив, экземпляр класса.
Адрес, блин ну это я обьяснять не буду.
Это разные понятия, вы ставите их в одни ряд, это не дело.

BlooDHounD 10.02.2009 21:20

ZlobaZl, всё неправильно. разберитесь в базисах ООП.

ZlobaZl 11.02.2009 03:27

Мда с этим я соглашусь) что у меня каша в голове по поводу терминологии. Как тогда правильно называется вся эта чехарда?

....Блин уже устал печатать))) В общем смотрите давайте по порядку:

1) Мы создаем Мувиклип в библиотеке флэша... -----Это понятно написал?
2) Определяем этому мувиклипу class -------А тут как правильнее называть?
3) Этот класс наследуется от МУВИКЛИПА следовательно к таким параметрам мувиклипа как координаты ширина угол поворота и т.д. т.п., дописываются созданные собою параметры например как в примере про игру - масса, радиус и т.д. -------Про написанное тут что скажете?
4) Изза присвоения мувиклипу класса мы можем говорить о характеристиках этого мувиклипа иметь Массу и Радиус ---- ----||----
5) После чего мне нужно создать несколько (тут незнаю как назвать (либо экземпляры либо незнаю что...)) допустим экземпляров данного объекта с харакеристиками Массы и Радиуса. Путем цикла я создаю каждый раз новый Такой мувиклип. --------??????

Далее как я понимал и делал раньше
6) Так как этих объектов имеется некоторое количество то мне нада их как то перебирать для вызова какой ни будь функции для этого я раньше записывал все эти объекты в массив array а потом перебирал все объекты массива и выполнял нужное действие.

Теперь собствено прокоментировать где я намудрил и где как правильнее написать?

BlooDHounD 11.02.2009 05:04

да узнайте Вы уже хоть, что-нить о ООП. как будто Вам 12 лет, и Вы в 5 классе на уроке литературы оправдываетесь за непрочитанную книгу.

Может Вы и понимаете, КАК оно работает, но ЧТО оно, Вы пока не пытались понять.

ZlobaZl 11.02.2009 05:10

Тут было всякое понаписано)) после чего я нашел дэжавюшку мука пшел читать))) потом вернемся к вопросам ;)

gloomyBrain 11.02.2009 05:40

Я думаю, ZlobaZl, Вы согласитесь с тем, что к любой беседе, дабы она была интересной, стоит подготовиться. Никто не выгоняет Вас с форума, Боже упаси. Более того, все, кто отвечал здесь - в той или иной мере заинтересованы и хотят Вам помочь. Проявите, пожалуйста, терпение и понимание, и тогда мы сможем говорить на одном языке и приносить друг-другу пользу. За 5 минут никакие "более интересные собеседники" не объяснят Вам все от начала и до конца.
Поэтому, подготовьтесь и побеседуем
Хари Кришна

ЗЫ
Вообще хотелось бы узнать, что именно Вы хотите сделать и какой путь решения предполагаете?
Будет проще Вам помочь, если Вы будете задавать конкретные вопросы


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

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