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

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

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

Регистрация: Aug 2009
Сообщений: 99
По умолчанию Клик на картинке в галерее

Привет!

В actionscript 2.0 внедрялся сам, без наставников, по докам и видео-урокам, поэтому некоторые моменты неясны )
на одном лейере лежит невидимый мувик с координатами (krug) и мувик-"полотно" с картинками (vah). В мувике vah создаются пустые мувики, в которых создаётся ещё один пустой мувик, в который нужно подгрузить картинку и повесить листенер для клика на картинке:

Код AS1/AS2:
var kartinka_mc_ldr:MovieClipLoader = new MovieClipLoader();
var kartListener:Object = new Object();	
kartListener.onRelease = function() {
	trace("pressed!");                                   //на первых порах листенер должен хотя-бы сказать о нажатии на картинку
	};
for (var numkart_y = 1; numkart_y<=15; numkart_y++) {  //15 рядов
	for (var numkart_x = 1; numkart_x<=15; numkart_x++) {  //по 15 картинок
		numkart=numkart_x+next_ryad;                     //Для индексации клипов от 1 до 225
		kart_obj = "kart"+numkart+"_mc";     //клею текстовое имя мувика для удобства использования дальше
			setProperty(kart_obj, _x, kart_mc_coord_x+500*shahm); //смещаю каждый мувик для картинки в "следующие координаты")
			setProperty(kart_obj, _y, kart_mc_coord_y);
		this.createEmptyMovieClip(kart_obj, this.getNextHighestDepth()); //создаю мувик в vah
		kart_obj.createEmptyMovieClip("kartinka",this.getNextHighestDepth()); //создаю в нём ещё один мувик. ПО ВСЕЙ ВИДИМОСТИ - ТУТ СОБАКА, ИБО В ДЕБАГГЕРЕ НЕ ПОКАЗЫВАЕТ СОЗДАННЫХ ВЛОЖЕННЫХ МУВИКОВ.
			setProperty(kartinka, _x, kart_mc_coord_x+500*shahm);
			setProperty(kartinka, _y, kart_mc_coord_y);		
if (numkart_tlimit > 5) {numkart_tlimit = 1;}; //не обращать внимания, временные вспомогательные переменные
		kartinka_mc_ldr.loadClip("E:/party/kart/"+numkart_tlimit+".jpg", kartina);	//загружаю во вложенный мувик картинку
			kartinka.addListener(kartListener); //вешаю на картинку листнер
kart_mc_coord_x += KART_PRIROST_X;//увеличиваею для позиционирования по горизонтали следующей картины+20рх = 1020рх
	}                                                                       //numkart_x
	kart_mc_coord_y += KART_PRIROST_Y;
	next_ryad += 15;
	kart_mc_coord_x=start_coord_x; //сбрасываю счётчик координат Х до начального значения и таким образом перехожу на начало следующей строки для размещения следующего ряда мувиков
if (shahm == 0) {shahm = 1;} //если предыдущий ряд был выставлен без отступа, то следующий ряд будет с отступом
		else {shahm = 0;}
}
далее, при клике на любую картинку на полотне, она должна смещать координаты полотна до координат krug (проще - выезжать кликнутую картинку на центр ). алгоритм выезда я ещё не разрабатывал, зациклился на создании мувика.

а теперь, собсно, вопрос: пожалуйста, подскажите, что я делаю не так, ибо вложенные мувики kartinka не создаются. в дальнейшем, при работающем коде должен создаваться
ещё один (некликабельный) мувик с рамкой (дублироваться мувик с рамкой из библиотеки).
прошерстил ветку форума, но подходящих топиков не нашёл (
5й день сижу, логика уже сварилась, помогите, плз )

Старый 11.08.2009, 05:43
psyh вне форума Посмотреть профиль Отправить личное сообщение для psyh Найти все сообщения от psyh
  № 2  
Ответить с цитированием
psyh
 
Аватар для psyh

Регистрация: Jun 2008
Сообщений: 21
Возьми какой нить пример галерее, и от туда возьми кусок нужного кода, я так делал по крайней мере когда мне нужна была такая фишка)))

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

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Половина переменных не задана, и еще хотите, чтобы у вас что-то работало: next_ryad = NaN, поэтому, все вычисления с этой переменной далее будут неверными. Какой тип имеет kart_obj? Строковый, по всей видимости, раз вы туда строку записали, а в коменте написано, что это мувиклип. Затем вы пытаетесь вызывать kart_obj.createEmptyMovieClip(). Затем пытаетесь обратиться к мнимому мувику "kartinka" через kartinka.. хотя он должен быть вложен в мнимый мувик kart_obj, вместо которого строка. Далее, пытаетесь загрузить черезе один и тот же экземпляр MovieClipLoader изображение в несуществующий мувик kartina, наивно полагая, что загрузка происходит моментально. После этого, пытаетесь вызывать kartinka.addListener -- у класса MovieClip нету такого метода.
Безумие сплошное, в общем.

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

Регистрация: Aug 2009
Сообщений: 99
спасибо!

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

Добавлено через 4 минуты
Код AS1/AS2:
var kartinka_mc_ldr:MovieClipLoader = new MovieClipLoader();
KART_PRIROST_X = 1150; //расстояние между центрами картинок по Х
	KART_PRIROST_Y = 900; //расстояние медлу центрами картинок по У
var kart_mc_coord_x:Number, kart_mc_coord_y:Number, next_ryad:Number = 0;
	start_coord_x=-9225;  //задаю начальные координаты для размещения мувика
	start_coord_y=-6892;
var kart_obj:Object, numkart_tlimit=1; //numkart_tlimit ВРЕМЕННО !!! использую пока всего 5 фоток, чтоб не тратить время на ресайзы остальных.
		kart_mc_coord_x=start_coord_x;    //начальные координаты, координаты центра первой располагаемой картины
		kart_mc_coord_y=start_coord_y;
	shahm=0; //первая строка - не в шахматном, а в нормальном порядке
var kartListener:Object = new Object();	
kartListener.onRelease = function() {
	trace("pressed!");                                   //на первых порах листенер должен хотя-бы сказать о нажатии на картинку
	};
for (var numkart_y = 1; numkart_y<=15; numkart_y++) {  //15 рядов
	for (var numkart_x = 1; numkart_x<=15; numkart_x++) {  //по 15 картинок
		numkart=numkart_x+next_ryad;                     //Для индексации клипов от 1 до 225
		kart_obj = "kart"+numkart+"_mc";     //клею текстовое имя мувика для удобства использования дальше
			setProperty(kart_obj, _x, kart_mc_coord_x+500*shahm); //смещаю каждый мувик для картинки в "следующие координаты")
			setProperty(kart_obj, _y, kart_mc_coord_y);
		this.createEmptyMovieClip(kart_obj, this.getNextHighestDepth()); //создаю мувик в vah
		kart_obj.createEmptyMovieClip("kartinka",this.getNextHighestDepth()); //создаю в нём ещё один мувик. ПО ВСЕЙ ВИДИМОСТИ - ТУТ СОБАКА, ИБО В ДЕБАГГЕРЕ НЕ ПОКАЗЫВАЕТ СОЗДАННЫХ ВЛОЖЕННЫХ МУВИКОВ.
			setProperty(kartinka, _x, kart_mc_coord_x+500*shahm);
			setProperty(kartinka, _y, kart_mc_coord_y);		
if (numkart_tlimit > 5) {numkart_tlimit = 1;}; //не обращать внимания, временные вспомогательные переменные
		kartinka_mc_ldr.loadClip("E:/party/kart/"+numkart_tlimit+".jpg", kartina);	//загружаю во вложенный мувик картинку
			kartinka.addListener(kartListener); //вешаю на картинку листнер
kart_mc_coord_x += KART_PRIROST_X;//увеличиваею для позиционирования по горизонтали следующей картины+20рх = 1020рх
	}                                                                       //numkart_x
	kart_mc_coord_y += KART_PRIROST_Y;
	next_ryad += 15;
	kart_mc_coord_x=start_coord_x; //сбрасываю счётчик координат Х до начального значения и таким образом перехожу на начало следующей строки для размещения следующего ряда мувиков
if (shahm == 0) {shahm = 1;} //если предыдущий ряд был выставлен без отступа, то следующий ряд будет с отступом
		else {shahm = 0;}
}


Последний раз редактировалось mj_nooker; 11.08.2009 в 15:26.
Старый 11.08.2009, 16:23
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 5  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Код AS1/AS2:
for (var i:Number = 0; i < 10; i++)
{
	var y:Number = i * 20;
	for (var j:Number = 0; j < 10; j++)
	{
		var cell:MovieClip = createEmptyMovieClip("cell" + i + j, getNextHighestDepth());
		cell._x = j * 20;
		cell._y = y;
		cell.onRelease = cell_onReleaseHandler;
 
		var image:MovieClip = cell.createEmptyMovieClip("image", getNextHighestDepth());
		image.loadMovie("add.png");
	}
}
 
function cell_onReleaseHandler():Void
{
	trace(this);
}

Старый 12.08.2009, 01:56
mj_nooker вне форума Посмотреть профиль Отправить личное сообщение для mj_nooker Найти все сообщения от mj_nooker
  № 6  
Ответить с цитированием
mj_nooker

Регистрация: Aug 2009
Сообщений: 99
2udaaff
спасибо! - идею понял, адаптировал под свою задачу, мувики грузятся, мало того - кликаются!

НО
полотно с картинками у меня плавало по экрану (ибо там картинок у меня много, и чтоб все обозреть - нужно поездить по экрану)
это реализовано у меня путём кнопок с _alpha=0; экран разбит на области-кнопки, при наведении мышки на которую кнопка срабатывает onRollOver и двигает полотно в определённое направление.
Так вот - когда мышка rollOver Над картинкой - обработчик rollOver картинки перехватывает rollOver управляющих кнопок-направлений (которые в лейере ниже полотна), таким образом, чтоб попасть rollOver на управляющие кнопки-направления, нужно убрать мышку с картинки, мало того, навести ТОЛЬКО на пространство между картинками.

И КАК СДЕЛАТЬ, ЧТОБ rollOver'ы работали и картинки и кнопок-направления - ума не приложу ((
help pls?


Последний раз редактировалось mj_nooker; 12.08.2009 в 07:47.
Создать новую тему Ответ Часовой пояс GMT +4, время: 14:54.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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