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

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

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

Регистрация: Feb 2007
Сообщений: 21
По умолчанию Картинки в ряд. Нужна помощь.

Здравствуйте. Я только начинаю изучать FLASH и у меня возникла проблема. Помогите, пожалуйста решить ее.

Допустим, у меня есть картинки q1,q2,q3,q4,q5
Есть текстовое поле text_pole
Картинки нужно загрузить в ряд. А потом, при нажатии на определенную картинку в текстовом поле выводится текст "Вы нажали на N картинку".
Я написал такую вещь.

Код:
var myclip_name:Array = [];

for (i=1; i == 5; i++) {
   myclip_name[i] = "clip"+i;
   _root.createEmptyMovieClip (myclip_name[i], i+10);
   _root.myclip_name[i]._x = i*100;
   _root.myclip_name[i]._y = 20;
   _root.myclip_name[i].loadMovie ("q"+i+".jpg");
  
   _root.myclip_name[i].onRelease = function () {
      _root.text_pole = "Вы нажали на "+i+" Картинку"
   }
}
Но, к сожалению ничего не работает. Я очень плохо в этом разбираюсь. Наверное этот код покажется вам смешным и нелепым, но я уже ничего не могу поделать.
Подскажите, пожалуйста, как сделать правильно.
Заранее спасибо!

Старый 16.09.2007, 17:14
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 2  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Код:
var myclip_name:Array = [];
//
for (i=1; i<5; i++) {
	_root.createEmptyMovieClip("clip"+i, i+10);
	myclip_name[i] = _root["clip"+i];
	_root["clip"+i]._x = i*100;
	_root["clip"+i]._y = 20;
	_root["clip"+i].loadMovie("q"+i+".jpg");
	_root["clip"+i].onRelease = function() {
		_root.text_pole.text = "Вы нажали на "+i+" Картинку";
	};
}

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

Регистрация: Aug 2005
Адрес: я из Ленинграда
Сообщений: 1,082
Отправить сообщение для Mnilionic с помощью ICQ
если картинки нужно ставить впритык друг к другу и при этом они имеют разную ширину, то сначала нужно загрузить все картинки, а потом циклом выстроить их в ряд сдвигая картинку по иксу на ширину предыдущей.

Старый 16.09.2007, 18:00
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 4  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Необязательно их все загружать сначала, а потом выстраивать, можно и в процессе:
Код:
x0 = 0;
for (i=0; i<5; i++) {
	_root.createEmptyMovieClip("clip"+i, i+10);
	_root["clip"+i].loadMovie("q"+i+".jpg");
	_root["clip"+i]._x = x0;// лажанулся слегка
           // загрузка асинхронна
	x0 += _root["clip"+i]._width;
}
Но все равно можно и сразу их выстраивать: http://www.flasher.ru/forum/showpost...8&postcount=13


Последний раз редактировалось udaaff; 16.09.2007 в 19:19.
Старый 17.09.2007, 12:23
Orgy вне форума Посмотреть профиль Отправить личное сообщение для Orgy Найти все сообщения от Orgy
  № 5  
Ответить с цитированием
Orgy
 
Аватар для Orgy

Регистрация: Feb 2007
Сообщений: 21
Не работает нажатие на Мувик.
Как же быть, чтоже делать?

Старый 17.09.2007, 13:47
Mnilionic вне форума Посмотреть профиль Отправить личное сообщение для Mnilionic Найти все сообщения от Mnilionic
  № 6  
Ответить с цитированием
Mnilionic
 
Аватар для Mnilionic

Регистрация: Aug 2005
Адрес: я из Ленинграда
Сообщений: 1,082
Отправить сообщение для Mnilionic с помощью ICQ
Добавь в библиотеку кнопку с идентификатором "btn" (её будем ставить поверх картинок)
Код:
var myclip_name:Array = [];
//
for (i=1; i<5; i++) {
	var mc = this.createEmptyMovieClip("clip"+i, i+10);
	myclip_name[i] = mc;
	mc._x = i*100;
	mc._y = 20;
	var img = mc.createEmptyMovieClip("img", 0);
	img.loadMovie("q"+i+".jpg");
	var btn = mc.attachMovie("btn", "btn", 1);
	btn.onRelease = function() {
		_root.text_pole.text = "Вы нажали на "+i+" Картинку";
		trace("Вы нажали на "+i+" Картинку")
	};
}


Последний раз редактировалось Mnilionic; 17.09.2007 в 14:02.
Старый 17.09.2007, 21:42
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 7  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Код:
var myclip_name:Array = [];
//
for (i=1; i<5; i++) {
	_root.createEmptyMovieClip("clip"+i, i+10);
	myclip_name[i] = _root["clip"+i];
	_root["clip"+i]._x = i*100;
	_root["clip"+i]._y = 20;
	_root["clip"+i].loadMovie("q"+i+".jpg");
	_root["clip"+i].onRelease = function() {// сносится
		_root.text_pole.text = "Вы нажали на "+i+" Картинку";
	};
}
Действительно, этот вариант будет работать не так как ожидается, так как контейнером, после загрузки в него содержимого, наследуются только некоторые свойства (_x, _y, _xscale, _yscale, _rotation), т.е. onRelease сносится после загрузки, таким образом, можно или использовать вариант Mnilionic'а, или определять это событие после загрузки содержимого:
Код:
loader(0, 1);
//
function loader(x0:Number, i:Number):Void {
	//
	var container:MovieClip = this.createEmptyMovieClip("tester_mc"+i, this.getNextHighestDepth());
	container._x = x0;
	//
	var mclListener:Object = new Object();
	mclListener.onLoadInit = function(target_mc:MovieClip) {
		//
		target_mc.onRelease = function() {
			trace(this);
		};
		// --- рекурсия
		loader(container._x+target_mc._width, ++i);
		//
	};
	var image_mcl:MovieClipLoader = new MovieClipLoader();
	image_mcl.addListener(mclListener);
	image_mcl.loadClip("image_"+i+".jpg", "tester_mc"+i);
}

Старый 17.09.2007, 22:17
Kikasso вне форума Посмотреть профиль Отправить личное сообщение для Kikasso Найти все сообщения от Kikasso
  № 8  
Ответить с цитированием
Kikasso
 
Аватар для Kikasso

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
..или повесить код на клип, внутри клипа создать еще пустой и грузить уже в него.

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

Регистрация: Aug 2005
Адрес: я из Ленинграда
Сообщений: 1,082
Отправить сообщение для Mnilionic с помощью ICQ
Kikasso, точняг! что-то я сразу не сообразил
Код:
var myclip_name:Array = new Array();
//
for (i=1; i<5; i++) {
	var mc = this.createEmptyMovieClip("clip"+i, i+10);
	mc._x = i*100;
	mc._y = 20;
	var img = mc.createEmptyMovieClip("img", 0);
	img.loadMovie("q"+i+".jpg");
	mc.num = i;
	mc.onRelease = function(){
		trace("Вы нажали на "+this.num+" Картинку")
	}
}

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

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

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


 


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


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