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

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

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

Регистрация: Nov 2007
Сообщений: 11
По умолчанию Массив муви-клипов созданных не программно

У меня такой вопрос:
предыстория: Я создал много муви клипов(более 200) с именами типа "...,k28_mc,..., k87_mc...". На каждый клип мне надо сделать действие, фактически одинаковое.
Вопрос: Как мне обойти все клипы циклом? А не прописывать каждому клипу действие отдельно. Грубо говоря, можно ли все эти клипы запихнуть в массив?

(с) все орфографические и пунктоционные ошибки в посте пренадлежат мне, и исправлению не подлежат.

Старый 05.05.2008, 15:50
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 2  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Код:
var arr:Array = new Array ();//создаю новый массив
arr.push (k28_mc);//в массив добавляю клипы
arr.push (k87_mc);


onEnterFrame = function ():Void{
   //перебираю массив и для каждого клипа меняю координату х
   for (var i:String in arr){
	   arr[i]._x += 5;
   }
}

Старый 05.05.2008, 15:58
olexandr вне форума Посмотреть профиль Отправить личное сообщение для olexandr Посетить домашнюю страницу olexandr Найти все сообщения от olexandr
  № 3  
Ответить с цитированием
olexandr
 
Аватар для olexandr

Регистрация: Aug 2007
Адрес: Ukraine, Kyiv
Сообщений: 643
Отправить сообщение для olexandr с помощью ICQ Отправить сообщение для olexandr с помощью MSN Отправить сообщение для olexandr с помощью Skype™
если названия однотипные, можно и без массива

Код:
for (var i:Number=0; i<count; i++){
  trace('k'+i+'_mc')
}
__________________
сайт, vk

Старый 05.05.2008, 15:58
Vertax вне форума Посмотреть профиль Отправить личное сообщение для Vertax Найти все сообщения от Vertax
  № 4  
Ответить с цитированием
Vertax

Регистрация: Oct 2005
Сообщений: 207
Такими темпами 200++ строк он будет только массив создавать. Проще тогда уж так:
Код:
var arr:Array = new Array ();//создаю новый массив
for (var i = 1; i < 200; i++) arr.push(eval("k" + i + "_mc"));

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
если нужен массив
Код:
var arr:Array = new Array ();//создаю новый массив
for(var i=0; i<201; i++){
    var mc = _root["k"+i+"_mc"];
    mc != undefined ? arr.push(mc) : null;
  }
trace(arr.length())
если массив не нужен, просто меняем свойства или функции
Код:
for(var i=0; i<201; i++){
    _root["k"+i+"_mc"]._x = 220;
}
__________________
Reality.getBounds(this);


Последний раз редактировалось Wolsh; 05.05.2008 в 16:14.
Старый 05.05.2008, 16:09
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 6  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
eval - устаревшая функция. В AS 3.0 ее нет. Нужно так:
Код:
for (var i = 1; i < 200; i++) arr.push(this["k" + i + "_mc"]);
Но если имена однотипные, нужно делать, как сказал olexandr или Wolsh.

Старый 05.05.2008, 16:25
FDS вне форума Посмотреть профиль Отправить личное сообщение для FDS Найти все сообщения от FDS
  № 7  
Ответить с цитированием
FDS

Регистрация: Nov 2007
Сообщений: 11
Всем огромное спасибо. Все получилось.

Старый 05.05.2008, 16:50
FDS вне форума Посмотреть профиль Отправить личное сообщение для FDS Найти все сообщения от FDS
  № 8  
Ответить с цитированием
FDS

Регистрация: Nov 2007
Сообщений: 11
Ну... почти все. Еще один вопрос по этому же проекту:
обращаться и изменять клипы с однотипными именами это понятно, проблемма теперь состоит вот в чем:
В начале я задал всем этим роликам невидимость:
Код:
for(var i=0; i<218; i++){
    _root.l0.kv_mc["k"+i+"_mc"]._alpha = 0;
}
//kv_mc это ролик в котором содержатся куча остальных роликов
теперь мне надо, что бы при наведении на один из кучи "квадратов" он становился видимым. Я логически думаю так: при наведении на ролик, в котором есть все остальные ролики, он начинает цикл проверки на какой ролик наведино и делает его видимым(в коде у меня 100% дурость наверно, потому что не работает ):
Код:
_root.l0.kv_mc.onRollOver=function(){
for(var i=0; i<218; i++){
    _root.l0.kv_mc["k"+i+"_mc"].onRollOver = function(){
		l0.kv_mc["k"+i+"_mc"]._alpha = 100;}
	_root.l0.kv_mc["k"+i+"_mc"].onRollOut = function(){
		l0.kv_mc["k"+i+"_mc"]._alpha = 0;}		
}}

Старый 05.05.2008, 16:58
Obi вне форума Посмотреть профиль Отправить личное сообщение для Obi Найти все сообщения от Obi
  № 9  
Ответить с цитированием
Obi
 
Аватар для Obi

Регистрация: Nov 2007
Адрес: Moscow
Сообщений: 566
Код:
for(var i=0; i<218; i++){
    var myMc:MovieClip = _root.l0.kv_mc["k"+i+"_mc"];
    myMc._alpha = 0;
    myMc.onRollOver = function():Void {
          this._alpha = 100;
    }
    myMc.onRollOut = funtion():Void {
          this._alpha = 0;
    }
}

Старый 05.05.2008, 17:00
Vertax вне форума Посмотреть профиль Отправить личное сообщение для Vertax Найти все сообщения от Vertax
  № 10  
Ответить с цитированием
Vertax

Регистрация: Oct 2005
Сообщений: 207
2Obi: Не выйдет при _visible=false события мыши не сработают. Нужно: _alpha = 0, _alpha = 100 соответственно.

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

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

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


 


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


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