![]() |
|
||||||||||
|
|||||
|
Регистрация: Jul 2008
Сообщений: 72
|
как очистить от мувиков контейнер заполненный вот таким образом
_root.createEmptyMovieClip("container_mcZ",_root.getNextHighestDepth()); container_mcZ._x = _root.goriz_x; container_mcZ._y = _root.goriz_y; for (var i = 0; i<heading_material_array.length-1; i++) //for (var i = 0; i< 10; i++) { //выводим кнопки по горизонтали var ttitle:MovieClip = _root.container_mcZ.attachMovie("ttitle","ttitle"+i,i); //выставляем координаты токо что созданной кнопки ttitle._x = startXg; ttitle._y = startYg; //выщитываем новую координату для следующей картинки startXg += ttitle._width+_global.imageShift; } for(... in ....)??? не пойму как его правильно организовать - подскажите пожалуйста |
|
|||||
|
Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
|
Вот так
И избавьтесь от привычки везде _root писать,потом одни только проблемы будут |
|
|||||
|
Регистрация: Jul 2008
Сообщений: 72
|
в общем задумка простая - создать два списка из мувиков - горизонтальный - спискок тем и вертикальный- список заголовков по этой конкретной теме - взял для примера исходник где вместо мувиков загружались фотки - этот пример оптимизировал под свои нужды - т.е. добавил прокрутку в этих списках в зависимости от координтаы мышки при условиях что прокрутка списков начинаеться только если указатель мыши находится в области отдельной маски для каждого списка. плюс к этому добавил в горизонтальныйсписок эффект зеркального отображения - всё отлично работает - см. исходник.
Стал вариант с мувиками вместо клипа - тут и посыпались проблемы во первых функции создания маски и скроля - норамально работают только если их вызывать из цикла в котором аттачу мувики для списков да и их работау назвать нормальной нельзы поскольку горизонтальная маска не совпадает с координатами горизронтального списка на 350 пикселей ![]() а при запуске функции скроля вообще списки смещаются - горизонтальный в право - ветикальный - вниз Последний раз редактировалось etc; 01.03.2009 в 13:01. |
|
|||||
|
Регистрация: Jul 2008
Сообщений: 72
|
вот в таком виде работает - но там поправка на горизонтальную маску - и почемуто список всё равное не очищается - где ошибка?
import mx.transitions.Tween; import mx.video.*; import mx.transitions.easing.*; import flash.display.*; import flash.geom.*; import flash.filters.*; //Делаем флешку не масштабируемой и ставим максимально хорошее качество Stage.scaleMode = "noScale"; Stage.align = "B"; _root._quality = "BEST"; var main:MovieClip = _root.attachMovie("main","main",_root.getNextHighestDepth()); main._x = 0; main._y = 0; // координаты компонентов vert_x = 0; //координаты вертикальной панели vert_y = 0; goriz_x = 0; //координаты горизонтальной панели goriz_y = 340; vert_width = 80;//размеры вертикальной панели vert_height = 560;//640 goriz_width = 160;//размеры горизонтальная панели 960 goriz_height = 160; thumb_height = 80; //размеры мелких фото thumb_width = 80; full_x = 200; //коордиты больших фото full_y = 200; _global.imageShift = 2;//дистанция между картинками _global.sdvigV = 0; // погрешность равная количеству мувиков умноженное на imageShift _global.sdvigZ = 0; // создаём пустой клип с нужными координатами для панели прокрутки с мелкими фотками _root.createEmptyMovieClip("container_mcV",_root.getNextHighestDepth()); container_mcV._x = _root.vert_x; container_mcV._y = _root.vert_y; _root.createEmptyMovieClip("container_mcZ",_root.getNextHighestDepth()); container_mcZ._x = goriz_x; container_mcZ._y = goriz_y; Vertical(); createMaskVert(); createMaskGoriz(); scrolling(); //*****функция выводит вертикальное меню с горизонтальным по первой теме*************** function Vertical() { /******id темы - для обращения к базе и вывода горизонтального списка************/ /****************************************************************/ //обработчик для передачи параметров formData = new LoadVars(); //при загрузке флешки в пустое поле выводить сообщение formData.onLoad = function(success:Boolean) { if (success) { //стартовая позиция картинок по X var startXv:Number = _root.vert_x; //стартовая позиция картинок по Y var startYv:Number = _root.vert_y; //текущая координата картинки //var currImageXv:Number = 0; //вносим список имён тем в массив var my_str1:Array= formData.name_tema var nameTemes_array = new Array(); nameTemes_array = my_str1.split("$$"); //вносим ID тем var my_str2:Array= formData.id_tema; var idTemes_array = new Array(); idTemes_array = my_str2.split("$$"); _global.sdvigV = _global.imageShift * (nameTemes_array.length-1); //пока не кончится все фотки загружаем их в контейнер for (var i = 0; i<nameTemes_array.length-1; i++) //for (var i = 0; i<3; i++) { //добовляем картинку из библиотеки var tema:MovieClip = _root.container_mcV.attachMovie("tema","tema"+i,i); //оптимизируем скрипт создавая переменную tema передавая ей ссылку на нашу картинку tema._x = startXv; tema._y = startYv; //выщитываем новую координату для следующей картинки startYv += tema._height+_global.imageShift; tema.temaText.text = nameTemes_array[i]; //массивы для передачи ID темы и имя темы чтобы передать функции отображения //горизонтального списка tema.IdKey_array = idTemes_array[i]; tema.IdName_array = nameTemes_array[i]; //принажатии на изображение вызываем горизонтальную панель tema.onRelease = function() { var id:Number = this.getDepth(); Gorizontal(idTemes_array[id], nameTemes_array[id]); }; //при наведении на изображение - прозрачность на 50% tema.onRollOver = function() { this._alpha = 50; }; // и наоборот tema.onRollOut = function() { this._alpha = 100; }; if (i == 0)//если первый запрос то загружаем сразу первую temu { Gorizontal(idTemes_array[i],nameTemes_array[i]); } //createMaskVert(); } } else{ //tema.temaText.text = "Error loading/parsing LoadVars."; } }; //обмен данными с MySQL значения объекта formData методом POST formData.sendAndLoad('phpinitializ.php',formData,'POST'); } //**********************************************горизонтальное меню*************************************** function Gorizontal(idkey:String,tema:String) { formData2 = new LoadVars(); //при загрузке флешки в пустое поле выводить сообщение formData2.onLoad = function(success:Boolean) { if (success) { //стартовая позиция картинок по X var startXg:Number = _root.goriz_x; //стартовая позиция картинок по Y var startYg:Number = _root.goriz_y; /*вносим список id materiala*/ var my_str3:Array = formData2.id_material; var id_material_array = new Array(); id_material_array = my_str3.split("$$"); /*вносим заголовки тем*/ var my_str4:Array = formData2.heading_material; var heading_material_array = new Array(); heading_material_array = my_str4.split("$$"); /**********************************вопросы к теме*************************************************/ /*вносим id вопросов*/ var my_st:Array = formData2.id_kus; var id_kus_array = new Array(); id_kus_array = my_st.split("$$"); /* вносим сами вопросы*/ var my_st1:Array = formData2.kusimus; var kusimus_array = new Array(); kusimus_array = my_st1.split("$$"); _global.sdvigV = _global.imageShift * (heading_material_array.length-1); // очищаем контейнер for(var key in container_mcZ) { if(typeof(container_mcZ[key]=='movieclip')) { delete container_mcZ[key]; } } for (var i = 0; i<heading_material_array.length-1; i++) //for (var i = 0; i< 10; i++) { //выводим кнопки по горизонтали var ttitle:MovieClip = _root.container_mcZ.attachMovie("ttitle","ttitle"+i,i); //выставляем координаты токо что созданной кнопки ttitle._x = startXg; ttitle._y = startYg; //выщитываем новую координату для следующей картинки startXg += ttitle._width+_global.imageShift; ttitle.titleText.text = heading_material_array[i]; /*для передачи в функцию Window*/ ttitle.IdKey2_array = id_material_array[i]; ttitle.head_array = heading_material_array[i]; ttitle.temaForWindow = tema; //принажатии на изображение вызываем горизонтальную панель ttitle.onRelease = function() { //_root.MainWindow(temaForWindow,head_array,IdKey2_array); }; //при наведении на изображение - прозрачность на 50% ttitle.onRollOver = function() { this._alpha = 50; }; // и наоборот ttitle.onRollOut = function() { this._alpha = 100; }; if (i == 0)/*если первый запрос */ { //MainWindow(tema,heading_material_array[i],id_material_array[i]); } } }else{ //ttitle.titleText.text = "Error loading/parsing LoadVars."; } }; /*ОТПРАВЛЯЕМ В PHP ID темы */ formData2.keys = idkey; formData2.send_user = "slava"; formData2.keys = idkey; //отсылаешь в файл myform.php значения объекта formData методом POST formData2.sendAndLoad('phpgorizontal.php', formData2, 'POST'); } //************************************************************************************** function createMaskVert() { //создаём пустой клип для маски с известными координатами для скроль панели _root.createEmptyMovieClip("mask_mcV",_root.getNextHighestDepth()); mask_mcV._x = vert_x; mask_mcV._y = vert_y; //отчерчивает маску с размерами панели mask_mcV.beginFill(0x000000,100); mask_mcV.lineTo(vert_width,vert_x); mask_mcV.lineTo(vert_width,vert_height); mask_mcV.lineTo(vert_y,vert_height); mask_mcV.lineTo(vert_x,vert_y); // устанавливаем маску для скроль панели container_mcV.setMask(mask_mcV); } function createMaskGoriz() { //создаём пустой клип для маски с известными координатами для скроль панели _root.createEmptyMovieClip("mask_mcZ",_root.getNextHighestDepth()); mask_mcZ._x = goriz_x+80; // чтобы выровнять маску поотношению к списку mask_mcZ._y = goriz_y+335; //отчерчивает маску с размерами панели mask_mcZ.beginFill(0x000000,100); mask_mcZ.lineTo(goriz_width,0); mask_mcZ.lineTo(goriz_width,goriz_height); mask_mcZ.lineTo(0,goriz_height); mask_mcZ.lineTo(0,0); // устанавливаем маску для скроль панели container_mcZ.setMask(mask_mcZ); } ///Change movement of the gallery depending on mouse placement function scrolling() { _root.onEnterFrame = function() { //движемся по оси у увеличивая на шаг if((mask_mcV._xmouse > 0)&&(mask_mcV._xmouse < vert_width)&&(mask_mcV._ymouse > 0)&&(mask_mcV._ymouse < vert_height)) { container_mcV._y += Math.cos(((mask_mcV._ymouse)/mask_mcV._height)*Math.PI)*5; //5 - скорость промотки } if (container_mcV._y>mask_mcV._y) { container_mcV._y = mask_mcV._y; } if (container_mcV._y<(mask_mcV._y-(container_mcV._height-mask_mcV._height))) { container_mcV._y = mask_mcV._y-(container_mcV._height-mask_mcV._height); } if((mask_mcZ._xmouse > 0)&&(mask_mcZ._xmouse < goriz_width)&&(mask_mcZ._ymouse > 0)&&(mask_mcZ._ymouse < goriz_height)) { container_mcZ._x += Math.cos(((mask_mcZ._xmouse)/mask_mcZ._width)*Math.PI)*5 ; //5 - скорость промотки } if (container_mcZ._x>mask_mcZ._x) { container_mcZ._x = mask_mcZ._x; } if (container_mcZ._x<(mask_mcZ._x-(container_mcZ._width-mask_mcZ._width))) { container_mcZ._x = mask_mcZ._x-(container_mcZ._width-mask_mcZ._width); } }; } |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Вообщето мувиклипы никогда еще делитом не удалялись, это же дисплейный объект.
Про условие я просто помолчу. Вот код.
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Jul 2008
Сообщений: 72
|
с удаление разобрался - помогло
//стираем прежний список for(var key in container_mcZ) { if(typeof(container_mcZ[key]=='movieclip')) { //delete container_mcZ[key]; unloadMovie(container_mcZ[key]); } } Добавлено через 43 секунды ну я так и подумал =) Добавлено через 6 минут что то с функцией scrolling не так - всё глюки вроде из за неё Добавлено через 33 минуты а что не так не пойму - может кто подскажет??? |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
Наверно строку "boolean" (выражение равенства имеет тип Boolean)
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Jul 2008
Сообщений: 72
|
да в этом коде всё нормально - работает - да и ладно - я вижу что контейнеры начинают себя вести не так как хотелось бы при запуске функции function scrolling() ( см. топик №4)
|
|
|||||
|
Banned
[+5 15.02.09]
[++5 15.02.09] Регистрация: Mar 2008
Адрес: Krasnoyarsk
Сообщений: 587
|
Если бы с моего кресла можнобыло упасть я бы упал
. Тогда можно вообще условие не делать всеравно ведь remove Только с мувиклипом будет работать |
|
|||||
|
Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
|
Блин,спросонья какую-то чушь написал, да и ещё и не проверил,робят звиняйте,вот правильный вариант
|
![]() |
![]() |
Часовой пояс GMT +4, время: 05:05. |
|
|
« Предыдущая тема | Следующая тема » |
|
|