Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 26.03.2013, 08:16
Termin вне форума Посмотреть профиль Отправить личное сообщение для Termin Найти все сообщения от Termin
  № 1  
Ответить с цитированием
Termin
 
Аватар для Termin

Регистрация: Sep 2006
Сообщений: 111
По умолчанию Работа с массивом

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

Еще Вопрос, когда мы програмным образом переносим елемент массива с одного места на другой его же удалять с предыдущего места ненужно?

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

Спасибо!

Старый 26.03.2013, 08:27
Srednas вне форума Посмотреть профиль Отправить личное сообщение для Srednas Найти все сообщения от Srednas
  № 2  
Ответить с цитированием
Srednas

Регистрация: Nov 2010
Сообщений: 430
Посмотрите справку по массивам.
__________________
Лучше спросить и выставить себя дураком на пять минут, чем не спросить и остаться дураком на всю жизнь.

Старый 26.03.2013, 08:30
Termin вне форума Посмотреть профиль Отправить личное сообщение для Termin Найти все сообщения от Termin
  № 3  
Ответить с цитированием
Termin
 
Аватар для Termin

Регистрация: Sep 2006
Сообщений: 111
Ну да я обязательно это все просмотрю, все по потребности, встретился с проблемой разберись в корне, это все понятно, спасибо за ссыль. Мне прост осрочно нужно, читать разбираться на этой неделе у меня просто нет времени, поэтому прошу дать талчек, я бы просто понял какое поле иследовать в массивах, а современенм просто детально изучю все...

Старый 26.03.2013, 09:17
Srednas вне форума Посмотреть профиль Отправить личное сообщение для Srednas Найти все сообщения от Srednas
  № 4  
Ответить с цитированием
Srednas

Регистрация: Nov 2010
Сообщений: 430
На неделе? ) Да у вас менее пары часов уйдет на изучение.
Все достаточно просто, смотрите:
push(... args):uint
Добавляет один или несколько элементов в конец массива и возвращает новую длину массива.
unshift(... args):uint
Добавляет один или несколько элементов в начало массива и возвращает новую длину массива.
pop():*
Удаляет последний элемент из массива и возвращает значение этого элемента.
shift():*
Удаляет первый элемент из массива и возвращает этот элемент.

Комбинируя, можно получить что-то вроде:
Код AS3:
var a:Array = [1, 2, 3];  // создали массив
trace(a); // выводим массив, отображается [1, 2, 3]
a.unshift(a.pop()); // добавляем в начало (unshift) массива элемент, удаленный из конца (pop) массива
trace(a); // выводим массив, отображается [3, 1, 2]
__________________
Лучше спросить и выставить себя дураком на пять минут, чем не спросить и остаться дураком на всю жизнь.

Старый 26.03.2013, 10:11
Termin вне форума Посмотреть профиль Отправить личное сообщение для Termin Найти все сообщения от Termin
  № 5  
Ответить с цитированием
Termin
 
Аватар для Termin

Регистрация: Sep 2006
Сообщений: 111
Цитата:
Сообщение от Srednas Посмотреть сообщение
На неделе? ) Да у вас менее пары часов уйдет на изучение.
Я к таму, что это не единственная проблема и отвлекаться на изучение и создании, обдумывание более и менее подходящего алгоритма нет времени, вот вы бонально обьяснили в принципи простейшую вещь и я понял её принцип работы, на что спасибо, теперь я съэкономлю кое какое время. просто в сутках времени на работу во влеше у меня не так много, а работу нужно сделать в ближайшие сроки. 2 часа в день с нормальном случае а иногда так вообще нет времени...

Спасибо! Если есть у когото конкретные идеи или вопроссы, буду рад увидеть в этой теме)

Добавлено через 41 минуту
В таком случае решил задать вопросс поконкретнее. Ниже есть тема по созданию галереи. Вот встретившись с рядом проблем, решил создать тему отдельную про массивы, заодно изучить поглубже этот вопрос.

Что, хочю сделать, алгаритм таков: Отследить координаты первой картинки в массиве, если они привешают половины его ширины по ИКСУ, тогда на первый элемент массвива переноситься последний элемент, а первый уже становиться вторым и возвращаем новую длину, ну и так долее до бесконечности. Также с другой стороны, если последний елемент массива имеет координаты меньшечем длины флешки минус половина ширины картинки, значит уже первый элемент становиться последним, а последний предпоследним и т.д.
Вопросс в чем, подайдет ли такой алгоритм или как можно отследить другими способами или как лучше былобы отследить... Просто так сказать совет.

Спасибо

Старый 26.03.2013, 16:14
Srednas вне форума Посмотреть профиль Отправить личное сообщение для Srednas Найти все сообщения от Srednas
  № 6  
Ответить с цитированием
Srednas

Регистрация: Nov 2010
Сообщений: 430
Возможно вам достаточно будет менять порядок отображения без «сортировки» массива.
С помощью setChildIndex.

А отдельные вопросы лучше оформлять в новой теме
__________________
Лучше спросить и выставить себя дураком на пять минут, чем не спросить и остаться дураком на всю жизнь.

Старый 27.03.2013, 07:46
Termin вне форума Посмотреть профиль Отправить личное сообщение для Termin Найти все сообщения от Termin
  № 7  
Ответить с цитированием
Termin
 
Аватар для Termin

Регистрация: Sep 2006
Сообщений: 111
Я сделал так: Описание: Если первая картинка превышает изночальные координаты по X тогда последняя картинка становиться за ней и она же становиться первым элементом массива так как первый элемент становиться вторым после него. Второй аргумент обратный т.е. если же последняя картинкаи имеет координату X меньше чем длина флешки минус половина её ширины т.е. если бы она была вся видна но не более того. тогда происходит обратный проццес

Код AS3:
if(Array[0].x>=Array[0].width/2)
          {
              Array[n].x=Array[0].x-(Array[0].x+Array[n].x)/2;
              Array.unshift(Array.pop());
          }
        if(Array[n].x<=stage.stageWidth-Array[n].width/2)
          {
              Array[0].x=Array[n].x+(Array[0].x+Array[n].x)/2;
              Array.push(Array.shaft());
          }
где n последний элеммент массива;

В таком случае прокрутка картинок движеться бесконечно в любом направлении, спасибо!)))

Создать новую тему Ответ Часовой пояс GMT +4, время: 10:29.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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