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

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

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

Регистрация: Oct 2009
Сообщений: 5
Question Помогите разобраться с масcивами и movieclip AS2

Всем доброго времени суток!
ну и сразу к делу, хочу сделать так:

У меня есть мувик, назавем его "m", в этом мувике есть 4 текстовых динамических поля назавем их "tx1" "tx2" "tx3" "tx4" и еще один мувик "load"(туда я гружу картинку при помощи loadMovie). Есть также массивы из них все грузится в текстовые поля arr_tx1[1] в "tx1",arr_tx2[1] в "tx2" ,arr_tx3[1] в "tx3",arr_tx4[1] ну и в "tx4" соотвественно, arr_load[1] в "load", все это прекрасно работает, но есть одно но, мне надо чтобы это все шло автоматом, т.е когда это все закончилось, пошел второй цикл и создал бы мувик "m2"( ну этот мувик должен сдвинуться) тоже с 4 текстовыми полями и мувиком, но только чтобы туда из массива грузились вторые элементы (arr_tx1[2] в "tx1",arr_tx2[2] в "tx2" ,arr_tx3[2] в "tx3",arr_tx4[2])а не первые. ну и так далее "m3" и там arr_tx2[3] в "tx2" ,arr_tx3[3] в "tx3"....
вот еще вопрос как лучше обрезать фотографию, полученную при помощи loadmovie();

Надеюсь на вашу помощь, заранеее всем спасибо!

Старый 09.10.2009, 00:14
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
1.
цикл 1
attachMovie, сдвиг
цикл 2
загрузка данных в приаттаченный мувик
конец цикла 2
конец цикла 1

2. Маской. Но вообще-то одна тема - один вопрос.


Последний раз редактировалось mooncar; 09.10.2009 в 00:20.
Старый 09.10.2009, 01:44
kurtby вне форума Посмотреть профиль Отправить личное сообщение для kurtby Найти все сообщения от kurtby
  № 3  
Ответить с цитированием
kurtby

Регистрация: Oct 2009
Сообщений: 5
Спасибо за ответ, но я все равно не понимаю как сделать
делаю так:

Код AS1/AS2:
var arr_tx1:Array = Array(["firstElement","2Element"]);
var arr_tx2:Array = Array(["doubleElement","3Element"]);
for (var i:Number = 1; i<2; i++) {
 this.attachMovie("m", "m1", this.getNextHighestDepth(), {_x:200, _y:200});
 this.attachMovie("m", "m2", this.getNextHighestDepth(), {_x:400, _y:400});
 for (var p:Number = 1; p<2; p++) {
	m1.tx1.text=arr_tx1[0];
	m1.tx2.text=arr_tx2[0];
           m2.tx1.text=arr_tx1[1];
	m2.tx2.text=arr_tx2[1];
 }
}
но вручную создавать каждый мувик как-то сложно ,точнее, мне может понадовиться и 1000 мувиков, т.к что вручную тяжеловато

что надо написать чтобы при каждом прохождении цикл создавал новый мувик? с соттвесвющим инстант именем.

ну надо как-то так сделать но я не знаю как правильно:

Код AS1/AS2:
var arr_tx1:Array = Array(["firstElement","2Element"]);
var arr_tx2:Array = Array(["doubleElement","3Element"]);
for (var i:Number = 1; i<2; i++) {
 this.attachMovie("m", "m+i", this.getNextHighestDepth(), {_x:200, _y:200});
 for (var p:Number = 1; p<=4; p++) {
	i.tx1.text=arr_tx1[p];
	i.tx2.text=arr_tx2[p];
 
 }
}
помогите плз


Последний раз редактировалось kurtby; 09.10.2009 в 01:51.
Старый 09.10.2009, 03:35
true11 вне форума Посмотреть профиль Отправить личное сообщение для true11 Посетить домашнюю страницу true11 Найти все сообщения от true11
  № 4  
Ответить с цитированием
true11
 
Аватар для true11

Регистрация: Feb 2009
Сообщений: 74
Отправить сообщение для true11 с помощью ICQ
Код AS1/AS2:
var arr_tx1 = new Array(["firstElement","2Element"]);
var arr_tx2 = new Array(["doubleElement","3Element"]);
var arr_tx3 = new Array(["doubleElement","3Element"]);
for (var i:Number = 1; i<2; i++) {
 this.attachMovie("m", "m+i", this.getNextHighestDepth(), {_x:200, _y:200});
 for (var p:Number = 1; p<=3; p++) {
	this["m"+i].tx1.text=arr_tx1[p];
        this["m"+i].tx2.text=arr_tx2[p];
        this["m"+i].tx3.text=arr_tx3[p];
 }
}
просто обратиться "m"+i нельзя. Так как это будет строка. В данном случае мы ищем объект с именем "m"+i в контейнере this, собстнно куда и аттачим.


Последний раз редактировалось true11; 09.10.2009 в 03:39.
Старый 09.10.2009, 14:50
Vit_001 вне форума Посмотреть профиль Отправить личное сообщение для Vit_001 Найти все сообщения от Vit_001
  № 5  
Ответить с цитированием
Vit_001

Регистрация: Jul 2009
Сообщений: 3
Сам сталкивался с такой задачей когда только начинал осваивать AS, убил немало времени. Но когда решаешь проблему сам, то с последующими справляешься намного быстрее.
Код AS1/AS2:
/* common_mc - общий контейнер для всего этого барахла */
_root.createEmptyMovieClip('common_mc',_root.getNextHighestDepth());
 
/* Это твои массивы с текстом и загружаемыми картинками */
var tx1:Array = ['Text1A','Text2A','Text3A','Text4A'];
var tx2:Array = ['Text1B','Text2B','Text3B','Text4B'];
var img:Array = ['n001.jpg','n002.jpg','n003.jpg','n004.jpg'];
 
/* Здесь в цикле созддаются индивидуальные контейнеры-клипы - tmb, а в них соотвественно
грузятся картинки, и размещаются текстовыве поля, идет заполнение этих полей данными из массивов */
for (var i=0; i<img.length; i++){ // Количество проходов цикла = длинне массива img[]
var tmb = common_mc.createEmptyMovieClip('tmb'+i,i+1);
var _img = tmb.createEmptyMovieClip('_img',1); // Сюда будет грузится картинка
var _tx1 = tmb.createTextField('txt',2,100,0,100,20); // Текстовые поля
var _tx2 = tmb.createTextField('txt',3,100,20,100,20); // ---
 
_tx1.text = tx1[i]; // Заполнение текствовых полей
_tx2.text = tx2[i]; // ---
 
loadMovieClip(img[i],_img); //Стартуем загрузку картинки из массива img[] в контейнер _img
 
tmb._y = i*100; // Сдвигаем каждую tmb по вертикали
}
 
function loadMovieClip (path:String, target:MovieClip){ // Это - функция-загрузчик картинки
    var mcLoader :MovieClipLoader = new MovieClipLoader();
    var listenerLoad :Object = new Object();
    listenerLoad.onLoadInit = function (target:MovieClip)
    {
        /*Здесь размещаем код по масштабированию, позиционированию,
        а также по древнему орбяду обрезания (загруженной картинки) */
    }
    mcLoader.addListener(listenerLoad);
    mcLoader.loadClip(path, target);
}


Последний раз редактировалось Vit_001; 10.10.2009 в 12:33.
Создать новую тему Ответ Часовой пояс GMT +4, время: 21:59.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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