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

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

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

Регистрация: Nov 2008
Адрес: Moscow
Сообщений: 493
Отправить сообщение для Dr_Bra с помощью ICQ
По умолчанию xml gallery

Всем, привет!
Помогите, пожалуйста, подправить код.
Функция mover в самом низу, по идее, должна делить иконки на строки и столбцы.
Кто сможет, гляньте исходничек.

Архив получился 600 Кб поэтому залил сюда:
http://***********/13888206

Добавлено через 48 минут
а вот, собственно, весь код, который используется:
Код AS1/AS2:
var home:MovieClip = this;
var tooltip:MovieClip = this.attachMovie("tooltip", "tooltip", 10000);
 
tooltip._alpha = 0;
moviepath._alpha = 0;
 
var xml:XML = new XML();
xml.ignoreWhite = true;
xml.onLoad = function()
{
     var nodes = this.firstChild.childNodes;
	 numOfItems = nodes.length;
	 for ( i = 0; i<numOfItems; i++) {
		var t = home.attachMovie("item","item"+i,i+1);
		t.angle = i * ((Math.PI*2)/numOfItems);
		t.onEnterFrame = mover;
		t.toolText = nodes[i].attributes.tooltip;
		t.path = nodes[i].attributes.portfolioitems;
		t.icon.inner.loadMovie(nodes[i].attributes.image);
        t.ref.inner.loadMovie(nodes[i].attributes.image);
		t.icon.onRollOver = over;
        t.icon.onRollOut = out;
		t.icon.onPress = presss;
		path2 = t.path;
    }
}
 
function over()
{
    home.tooltip.tipText.text = this._parent.toolText;
    home.tooltip._x = this._parent._x;
    home.tooltip._y = this._parent._y - this._parent._height/2;
    home.tooltip.onEnterFrame =  Delegate.create(this,moveTip);
    home.tooltip._alpha = 100;
}
 
function out()
{
    delete home.tooltip.onEnterFrame;
    home.tooltip._alpha = 0;
}
 
function presss()
{
    var page:MovieClip = attachMovie("moviepath","moviepath",10000000);
    loadMovie(this._parent.path, page.itemloader);
}
 
function moveTip()
{
    home.tooltip._x = this._parent._x;
    home.tooltip._y = this._parent._y - this._parent._height/2;
}
 
xml.load("icons.xml");
 
function mover() {
    for(j=0;j<4;j++){
		for(i=0;i<5;i++){
			this._x=32 + i*150;
			this._y=35 + j*140;
			n++;
			}
	}
    this.swapDepths(Math.round(this._xscale)+100);
}

Старый 08.09.2009, 16:59
kayn вне форума Посмотреть профиль Отправить личное сообщение для kayn Найти все сообщения от kayn
  № 2  
Ответить с цитированием
kayn

Регистрация: Sep 2009
Адрес: this.x,this.y;
Сообщений: 153
Много всего написано, половина лишнего.
Зачем, например, в условиях цикла свойство length присваивать какой-то переменной с длиннющим именем?
Я бы подумал, что ты крутой флешер, но тогда такая простая задача не должна бы вызывать проблем... А раз это не так, то на время отбрось использовать ключ слово this, поскольку это тонкий, хотя и очень удобный инструмент, а создай массив и присвой ему свои иконки, тогда индексы твоего масива в циклах должны будут выглядеть так - j*4+i

Добавлено через 18 часов 2 минуты
ошибся, индекс j*5+i

Старый 09.09.2009, 11:04
Dr_Bra вне форума Посмотреть профиль Отправить личное сообщение для Dr_Bra Посетить домашнюю страницу Dr_Bra Найти все сообщения от Dr_Bra
  № 3  
Ответить с цитированием
Dr_Bra
 
Аватар для Dr_Bra

Регистрация: Nov 2008
Адрес: Moscow
Сообщений: 493
Отправить сообщение для Dr_Bra с помощью ICQ
Код AS1/AS2:
my_xml = new XML();
my_xml.ignoreWhite = true;
my_xml.onLoad = function(ok) {
	if (ok) {
 
		len = this.childNodes[0].childNodes.length;
		//play();
		//trace(len)
		lodFoto();
	}
};
_root.my_xml.load("icons.xml");
 
lodFoto=function() {
	tr=0
	s=4
k=Math.floor(len/4);
for(i=0; i<k; i++){
 
	for (j=0; j<s; j++){
		this.attachMovie("mc", ["mc"+i+j], this.getNextHighestDepth(), {_x:(j*200)+10, _y:(i*200)+10});
		tr=tr+1
 
		this["mc"+i+j].mc.icon.loadMovie(_root.my_xml.childNodes[0].childNodes[tr].attributes.image);
		this["mc"+i+j].mc.ref.loadMovie(_root.my_xml.childNodes[0].childNodes[tr].attributes.image);
		this["mc"+i+j].trg=tr
 
  		_root["mc"+i+j].onRelease = function () {
			//trace(_root.my_xml.childNodes[0].childNodes[trg].attributes.portfolioitems)
			df=[this.trg]
			trace(_root.my_xml.childNodes[0].childNodes[df].attributes.portfolioitems)
			//_root.createEmptyMovieClip("container", this.getNextHighestDepth(), {_x:0, _y:0});
			_root.attachMovie("trge", "mc_lood", _root.getNextHighestDepth(), {_x:0, _y:0});
			_root.attachMovie("back", "back", _root.getNextHighestDepth()+1, {_x:500, _y:350});
			_root.back.onRelease = function () {
				unloadMovie(mc_lood);
				removeMovieClip(_root.back);
				removeMovieClip(_root.mc_lood);
				}
			_root.mc_lood.loadMovie(_root.my_xml.childNodes[0].childNodes[df].attributes.portfolioitems);
 
 
}
Добавлено через 2 минуты
Минус скрипта, в том, что он колличество строк округляет.(

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

Теги
gallery , xml , галерея , загрузка

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

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


 


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


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