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

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

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

Регистрация: Aug 2008
Сообщений: 6
Отправить сообщение для CrAzY_GeNiYS с помощью ICQ
Question Неполадки с загрузкой картинок с помощью XML

Здравствуйте, эксперты дорогие)
Помогите, кто чем сможет... Такая вот проблемка.
Скачал я исходник галереи от сюдова. Мне нужно было переделать чучуть в другую.
В общем мне нужно, чтобы вверху до полоски были фотографии, одна посередине, две сбоку не полные. При нажатии допустим на клавишу "Некст" та картинка которая была справа от главной перемещается теперь на середину и естественно становится главной. все картинки должны плотно лежать друг за другом. те картинки которые по бокам ещё и затемняться должны но это потом реализуется само собой ...

Вот я придумал схему как мне сделать:

1. Выстроить все фотки начиная с первой и придумал такой вот алгоритм, только его надо смотреть в общем коде я покажу как он выглядит а вы гляньте на него в исходнике целиком:
Код AS1/AS2:
mc._y = (480 - arr[i]._height)/2;
  if(i != 0){
  	mc._x = arr[i - 1] + starta;
  	starta += mc.x;
  }else{
  	mc._x = (1010 - arr[0].width)/2;
  	starta += mc._x;
  }
То есть игриковая координата постоянна, а вот иксовая меняется... посмотрите лучше в исходнике, а то долго объяснять что здесь и почему.

2. При нажатии на кнопку вперёд или назад всем мувиклипам в координату Х добавляется сдвиг который равен ширине главной картинки, которая меняется на другую. Вот только плавность я не придумал как, может через цикл for замудрить?)

Как бы это было предисловие, как бы и вопрос. В ообщем помогите разрешить проблему с загрузкой картинок и скажите правильно ли я мыслю на счёт алгоритма загрузки и перемещения картинок?


З.ы. Я делаю эту галерею на подобии вот этой только немного со своими заморочками)

З.з.ы. Я уже создавал тему здесь, но не правильно. Я сам начал делать, но всё же появилась проблема, прошу помочь мне

З.з.з.ы.
Вложения
Тип файла: rar Мои исходники.rar (238.5 Кб, 64 просмотров)
Тип файла: rar Исходники которые я использовал.rar (209.7 Кб, 63 просмотров)

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

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
разделом, вероятно, ошиблись. а вообще, настораживает пара строк:
starta += mc.x;
starta += mc._x;
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

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

Регистрация: Aug 2008
Сообщений: 6
Отправить сообщение для CrAzY_GeNiYS с помощью ICQ
Да извините, забыл что на As2 делал

Вот собственно почти весь код:
Код AS1/AS2:
import flash.display.BitmapData;
import mx.transitions.*;
import mx.transitions.easing.*;
/*служебные переменные*/
var xml_url:String = 'gallery1.xml';//адрес xml файла
var flag:Boolean = true;//флаг для проверки
//
var YPan:Number = 480;//Координата панели
var XPan:Number = 0;//Координата панели
//
var photo_obj:Object = {};//создаем объект для хранения служебной информации
photo_obj.__width = 450;//ширина фоток
photo_obj.__height = 480;//высота фоток
photo_obj.__length = 0;//кол-во фоток в галерее
photo_obj.__bx = 505;//начальное положение фоток по x
photo_obj.__by = 240;//начальное положение фоток по y
//
var target_mc:MovieClip = this.createEmptyMovieClip('target_mc', 2);//создаем клип-родитель для фоток
var hint_mc:MovieClip = this.createEmptyMovieClip('hint_mc', 4);
//
 
/*XML - качаем и парсим наш XML*/
var myXML:XML = new XML();
myXML.ignoreWhite = true;
myXML.onLoad = function(suc) {
	if (suc) {
		var img_arr:Array = xml_parsing(this.firstChild.childNodes);//получаем массив с адресами фоток
		photo_load(img_arr);//запускаем функцию загрузки фоток
		photo_obj.__length = img_arr.length;//запоминаем кол-во фоток
	}
};
myXML.load(xml_url);
/*xml_parsing - функция принимает childNodes, а возвращает уже массив с адресами и комментариями фоток*/
function xml_parsing(arr:Array):Array {
	var return_arr:Array = [];
	for (var i = 0; i<arr.length; i++) {
		var photo:String = arr[i].attributes.url;//адреса картинок
		var title:String = arr[i].attributes.title;//комментарии
		var avtor:String = arr[i].attributes.avtor;//фотограф
		var caption:String = arr[i].attributes.caption;//
		var width:String = arr[i].attributes.width;//ширина
		var height:String = arr[i].attributes.height;//высота
		return_arr.push({_photo:photo, _title:title, _avtor:avtor, _caption:caption, _width:width, _height:height});
	}
	return return_arr;
}
		var starta:Array;
/*photo_load*/
function photo_load(arr:Array) {
	for (var i = 0; i<arr.length; i++) {
		var mc:MovieClip = target_mc.createEmptyMovieClip('mc'+i, i);//основной клип
		var pic:MovieClip = mc.createEmptyMovieClip('pic', 2);//клип для загрузки
		var bmp_mc:MovieClip = mc.createEmptyMovieClip('bmp_mc', 4);//клип для битмапы
		/*Выстраиваем фото в ряд*/
		mc._y = (480 - arr[i]._height)/2;
		if(i != 0){
			mc._x = arr[i - 1] + starta;
			starta += mc._x;
		}else{
			mc._x = (1010 - arr[0].width)/2;
			starta += mc._x;
		}
		//
		mc.__title = arr[i]._title;//запоминаем комментарии
		mc.__avtor = arr[i]._avtor;//запоминаем авторов
		mc.__caption = arr[i]._caption;//
		mc.__width = arr[i]._width;//запоминаем ширину
		mc.__height = arr[i]._height;//запоминаем высоту
		mc.__i = i;//запоминаем порядковый номер фотки
		//
		NextK.onPress = function(){
			if (flag) {
				zoom_plus(this);
				flag = false;
			} else {
				zoom_minus(this);
				flag = true;
			}
		}
		//
		PrevK.onPress = function() {
			_enabled(this,false);
			if (flag) {
				zoom_plus(this);
				flag = false;
			} else {
				zoom_minus(this);
				flag = true;
			}
		};
				//
		var mcl:MovieClipLoader = new MovieClipLoader();//создаем лоадер
		var mcl_obj:Object = {};//и его слушатель
		mcl.addListener(mcl_obj);//подписываем
		mcl.loadClip(arr[i]._photo,pic);//и грузим фотки
		//
		mcl_obj.onLoadInit = function(pic:MovieClip) {//когда загрузка завершена
			var mc:MovieClip = pic._parent;
			var bmp_mc:MovieClip = mc.bmp_mc;
			load_txt._visible = false;
			//
			var bmp:BitmapData = new BitmapData(pic._width, pic._height, true, 0);//создаем битмапдату
			bmp.draw(pic);//"фоткаем" загруженную фотку
			bmp_mc.attachBitmap(bmp,2,'auto',true);//аттачим битмапу в клип
			pic.removeMovieClip();//удаляем клип
		};
	}
}
Теперь понятней cleptoman откуда переменная starta взялась и что она делает? . Да и то что там вот того символа "_" не хватает, то не беда я просто опечатался

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

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
ОМГ о_О

смотрите MovieClipLoader.unloadClip вместо геморроя с битмапдатой
смотрите Tween для плавностей
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

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

Регистрация: Aug 2008
Сообщений: 6
Отправить сообщение для CrAzY_GeNiYS с помощью ICQ
- А какой алгоритм использования MovieClipLoader.unloadClip ?
- Вот вопрос по Tween как раз... Там написано что в скобках надо указать функцию, начальное значение и конечное... а какая функция отвечает за перемещение картинки, ну или мувика? Или надо просто создать самому функцию, а если так, то как оно будет распознавать начальное и конечное значение? Или просто этот Tween постепенно прибавляет определенное значение в допустим Function фун. (значение){} то есть кидает это значение в скобки функции, а функция всё делает используя это значение?..

З.ы. просто я пока не очень разбираюсь то в ActionScript а тем более что и где как называется Надеюсь вы поймете что я там понаписывал))

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

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
есть штука help .
там можно набрать поиск по интересующей теме.
по крайней мере до CS3 включительно help был в комплекте с самой программой. очень нужная штука временами.
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

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

Регистрация: Aug 2008
Сообщений: 6
Отправить сообщение для CrAzY_GeNiYS с помощью ICQ
Ну так вроде бы в хелпе смотрел про Tween, (если что у меня CS4) может я не там посмотрел, но там не полностью описывается. там только расказывается какие переменные нужно вносить в скобки... вот я и спросил про функцию ... Тем более про Tween я нашел только в AS3, в AS2 такого не было.

http://help.adobe.com/en_US/AS3LCR/F...n.html#Tween() Вот что я читал. Может не то?

А об MovieClipLoader.unloadClip я спросил просто, чтобы понять что мне удалить из моего кода а что оставить ... Можете хотя бы пример использования показать?) Потому что в хелпе написаны лишь возможности класса, а мне хотя бы алгоритм посмотреть, чтобы я этими возможностями мог воспользоваться ... Подскажите?)

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

Регистрация: Aug 2009
Сообщений: 2
так что ли? анимацию сам можешь добавить используя твин или greensock как тебе удобнее.


________________
привет из стронга
Вложения
Тип файла: rar Мои исходники.rar (292.3 Кб, 76 просмотров)

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

Регистрация: Aug 2008
Сообщений: 6
Отправить сообщение для CrAzY_GeNiYS с помощью ICQ
АААА ... ПАСИБА Ща буду разбираться

__________
Вас понял))

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

Теги
xml , галерея

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

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


 


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


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