![]() |
|
||||||||||
|
|||||
|
Регистрация: Aug 2009
Сообщений: 99
|
Привет!
В actionscript 2.0 внедрялся сам, без наставников, по докам и видео-урокам, поэтому некоторые моменты неясны ) на одном лейере лежит невидимый мувик с координатами (krug) и мувик-"полотно" с картинками (vah). В мувике vah создаются пустые мувики, в которых создаётся ещё один пустой мувик, в который нужно подгрузить картинку и повесить листенер для клика на картинке: 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;} } а теперь, собсно, вопрос: пожалуйста, подскажите, что я делаю не так, ибо вложенные мувики kartinka не создаются. в дальнейшем, при работающем коде должен создаваться ещё один (некликабельный) мувик с рамкой (дублироваться мувик с рамкой из библиотеки). прошерстил ветку форума, но подходящих топиков не нашёл ( 5й день сижу, логика уже сварилась, помогите, плз ) |
|
|||||
|
Регистрация: Jun 2008
Сообщений: 21
|
Возьми какой нить пример галерее, и от туда возьми кусок нужного кода, я так делал по крайней мере когда мне нужна была такая фишка)))
|
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Половина переменных не задана, и еще хотите, чтобы у вас что-то работало: next_ryad = NaN, поэтому, все вычисления с этой переменной далее будут неверными. Какой тип имеет kart_obj? Строковый, по всей видимости, раз вы туда строку записали, а в коменте написано, что это мувиклип. Затем вы пытаетесь вызывать kart_obj.createEmptyMovieClip(). Затем пытаетесь обратиться к мнимому мувику "kartinka" через kartinka.. хотя он должен быть вложен в мнимый мувик kart_obj, вместо которого строка. Далее, пытаетесь загрузить черезе один и тот же экземпляр MovieClipLoader изображение в несуществующий мувик kartina, наивно полагая, что загрузка происходит моментально. После этого, пытаетесь вызывать kartinka.addListener -- у класса MovieClip нету такого метода.
Безумие сплошное, в общем. |
|
|||||
|
Регистрация: Aug 2009
Сообщений: 99
|
спасибо!
упс я просил обратить внимание на код создания вложенных мувиков, и ввиду этого опустил описания переменных сейчас скопирую весь код целиком (с учётом указанных ошибок) Добавлено через 4 минуты 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. |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
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); } |
|
|||||
|
Регистрация: 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. |
|
|
« Предыдущая тема | Следующая тема » |
|
|