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

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

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

Регистрация: Aug 2009
Сообщений: 2
The bomb! Нужна помощь, немогу задать свойство подклассу в цикле (for)

Это скрипт галереи. изначально при "onPress" вызывалась функция drag() и фото можно было передвигать теперь мне это не нужно, а нужно чтобы при клике вызывалась функция getURL но при генерации фоток из галереи устанавливается одна ссылка на все фото, а в XML файле они разные. Не могу понять почему..

Вот XML

Цитата:
<?xml version="1.0" encoding="utf-8"?>
<photos>
<photo ids="1" desc="test1" url="/pics/1.jpg" />
<photo ids="2" desc="test2" url="/pics/2.jpg" />
<photo ids="3" desc="test3" url="/pics/3.jpg" />
</photos>
Вот ActionScript думаю смотреть надо в начале функции byggBilder()

Код AS1/AS2:
 
 
import flash.filters.*;
import flash.display.BitmapData;
 
var photoHolder = new Array();
var skalerTempo = 3;
var thumbStr = 30;
var stageHeight = Stage.height;
var stageWidth = Stage.width;
var fotoSkygge:DropShadowFilter = new DropShadowFilter(0, 45, 0x333333, 0.8, 10, 10, 2, 3);
var glow:GlowFilter = new GlowFilter(0x333333, 100, 150, 150, 1.5, 3, true, true);
var bakgrunnPattern:BitmapData = BitmapData.loadBitmap("bakgrunna");
// </vars>
////////////////////////////////
////////////////////////////////
// <init>
_root.createEmptyMovieClip("bakgrunsHolder", _root.getNextHighestDepth());
_root.createEmptyMovieClip("sideGlow", _root.getNextHighestDepth());
// </init>
////////////////////////////////
////////////////////////////////
// <generer fotovariabler>
//flickrTAGS = (flickrTAGS) ? flickrTAGS:"";
xmlURL = (xmlURL) ? xmlURL : "photos.xml";
//xmlURL = (flickrID) ? "http://api.flickr.com/services/feeds/photos_public.gne?id="+flickrID+"&tags="+flickrTAGS+"&tagmode=any&format=rss_200":xmlURL;
////
// Flickr feed
////
var loadet_xml:XML = new XML();
loadet_xml.ignoreWhite = true;
loadet_xml.onLoad = function(success) {
	var loop = (flickrID) ? loadet_xml.firstChild.firstChild.childNodes : loadet_xml.firstChild.childNodes;
	var num = 0;
	/*
 
if (flickrID) { 
		for (var i = 0; i<loop.length; i++) {
			if (loop[i].nodeName == "item") {
				var loop2 = loop[i].childNodes;
				photoHolder[num] = new Array();
				for (var i2 = 0; i2<loop2.length; i2++) {
					if (loop2[i2].nodeName == "media:content") {
						photoHolder[num].url = loop2[i2].attributes.url;
					} else if (loop2[i2].nodeName == "ids") {
						photoHolder[num].ids = loop2[i2].firstChild;
					} else if (loop2[i2].nodeName == "title") {
						photoHolder[num].desc = loop2[i2].firstChild;
					}
				}
				num++;
			}
		}
	} else {
 
*/
 
 
		for (i=0; i<loop.length; i++) {
			photoHolder[i] = loop[i].attributes;
		}
 
 
 
	////////////////}
	delete loadet_xml;
	byggBilder();
};
loadet_xml.load(xmlURL);
 
 
 
 
 
function byggBilder() {
	for (i=0; i<photoHolder.length; i++) {
		mc = _root.attachMovie("fotoHolder", "fotoHolder"+i, _root.getNextHighestDepth(), {_xscale:thumbStr, _yscale:thumbStr, _rotation:30-60*Math.random()});
		mc.txt.text = photoHolder[i].desc; // устанавливаем название фотки под картинкой
 
		mc.onPress = function() { getURL("http://mysite.com/"+photoHolder[i].ids,"_blank"); } /* Тут ПРОБЛЕМА.. ссылка получается "mysite.com/undefined" а если photoHolder[i].ids задать как var то для всех фоток 1 и та же ссыла выходит :( помогите */
 
 
		if (Math.round(Math.random()*1) == 1) {
			// tilfeldig y akse
			mc._y = (Stage.height*Math.random())+(mc._height*2);
			if (Math.round(Math.random()*1) == 1) {
				mc._x = Stage.width+(mc._width*2);
			} else {
				mc._x = -(mc._width*2);
			}
		} else {
			// tilfeldig x akse
			mc._x = (Stage.width*Math.random())+(mc._width*2);
			if (Math.round(Math.random()*1) == 1) {
				mc._y = Stage.height+(mc._height*2);
			} else {
				mc._y = -(mc._height*2);
			}
		}
		mc.newX = Math.round((mc._width/2)+(Stage.width-mc._width)*Math.random());
		mc.newY = Math.round((mc._height/2)+(Stage.height-mc._height)*Math.random());
		mc.oldRotation = mc._rotation;
		mc.oldX = mc.newX;
		mc.oldY = mc.newY;
		mc.startX = mc._x;
		mc.startY = mc._y;
		mc.oldHeight = mc._yscale;
		mc.oldWidth = mc._xscale;
		mc.id = i;
		mc.onEnterFrame = fotoAnimer;
		mc.filters = [fotoSkygge];
		//mc.dragPol.onPress = function() { getURL("/user/"+linkedurl[i],"_blank"); }
		mc.dragPol.onReleaseOutside = mc.dragPol.onRelease=stopdrag;
		photoHolder[i].mc = mc;
		lastBilde(mc, photoHolder[i].url);
		delete mc;
	}
	antallBilder = i;
}
function lastBilde(mc, url) {
	mc.createEmptyMovieClip("tmp", mc.getNextHighestDepth());
	lastBildeH.loadClip(url, (flickrID) ? mc.bildeHolder : mc.tmp);
}
var lastBildeH:MovieClipLoader = new MovieClipLoader();
var lastBildeHL:Object = new Object();
lastBildeHL.onLoadStart = function(mc:MovieClip):Void  {
	mc._parent.attachMovie('preLoader', 'preloader', mc._parent.getNextHighestDepth());
	loaderFarge = new Color(mc._parent.preloader);
	mc._parent.preloader.loadtxt.text = "";
	loaderFarge.setRGB(0xFFFFFF);
	mc._parent.preloader._y = -10;
	mc._visible = false;
};
lastBildeHL.onLoadProgress = function(mc:MovieClip, numBytesLoaded:Number, numBytesTotal:Number):Void  {
	var numPercentLoaded:Number = numBytesLoaded/numBytesTotal*100;
	mc._parent.preloader.percent._width = numPercentLoaded;
};
lastBildeHL.onLoadInit = function(mc:MovieClip) {
	mc._parent.preloader.removeMovieClip();
	var mc2 = mc._parent.bildeHolder;
	if (!flickrID) {
		var myBitmap = new BitmapData(mc._width, mc._height, true, 0xFFFFFF);
		myBitmap.draw(mc);
		mc._parent.bildeHolder.attachBitmap(myBitmap, mc._parent.bildeHolder.getNextHighestDepth(), "auto", true);
		mc.removeMovieClip();
	}
	///// 
	// scale and place image
	////
	var wP = 468/mc2._width;
	var hP = 450/mc2._height;
	mc2._width *= (wP<hP) ? hP : wP;
	mc2._height *= (wP<hP) ? hP : wP;
	mc2._x += -((mc2._width-468)/2);
	mc2._y += -((mc2._height-450)/2);
	mc2._visible = true;
};
lastBildeH.addListener(lastBildeHL);
// </bygg polaroids>
////////////////////////////////
////////////////////////////////
// <hjelpeboks>
_root.attachMovie("help", "help", _root.getNextHighestDepth());
help._x = 42;
help._y = 48;
help.filters = [fotoSkygge];
// </hjelpeboks>
////////////////////////////////
function rensFilm() {
	for (i=0; i<antallBilder; i++) {
		mc = eval("fotoHolder"+i);
		mc.oldY = mc.startY;
		mc.oldX = mc.startX;
		mc.onEnterFrame = fotoAnimerTilbake;
		removeMovieClip(navigering);
	}
}
function fotoAnimer() {
	this._y += (this.newY-this._y)/skalerTempo;
	this._x += (this.newX-this._x)/skalerTempo;
	if (Math.round(this._y) == this.newY) {
		delete this.onEnterFrame;
	}
}
function fotoAnimerTilbake() {
	this._y += (this.oldY-this._y)/skalerTempo;
	this._x += (this.oldX-this._x)/skalerTempo;
	this._xscale += (this.oldWidth-this._xscale)/skalerTempo;
	this._yscale += (this.oldHeight-this._yscale)/skalerTempo;
	this._rotation += (this.oldRotation-this._rotation)/skalerTempo;
	this.nesteKnapp._alpha += (0-this.nesteKnapp._alpha)/skalerTempo;
	this.forrigeKnapp._alpha += (0-this.forrigeKnapp._alpha)/skalerTempo;
	if ((Math.round(this._y) == this.oldY) && (Math.round(this._x) == this.oldX)) {
		delete this.nesteKnapp.onRelease;
		delete this.forrigeKnapp.onRelease;
		delete this.onEnterFrame;
	}
}
function fotoSkaler() {
	this._xscale += (100-this._xscale)/skalerTempo;
	this._yscale += (100-this._yscale)/skalerTempo;
	this._rotation += (this.newRotation-this._rotation)/skalerTempo;
	this._x += ((Stage.width/2)-this._x)/skalerTempo;
	this._y += ((Stage.height/2)-this._y)/skalerTempo;
	this.nesteKnapp._alpha += (60-this.nesteKnapp._alpha)/skalerTempo;
	this.forrigeKnapp._alpha += (60-this.forrigeKnapp._alpha)/skalerTempo;
	if (Math.round(this._width) == this.newWidth) {
		delete this.onEnterFrame;
	}
}
 
...............
..................
 
var stageL:Object = new Object();
stageL.onResize = function() {
	for (i=0; i<antallBilder; i++) {
		mc = eval("fotoHolder"+i);
		if (mc != fotoSomBlirVist) {
			mc._x = Math.round(Stage.width*(mc._x/stageWidth));
			mc._y = Math.round(Stage.height*(mc._y/stageHeight));
		} else {
			fotoSomBlirVist._x = Stage.width/2;
			fotoSomBlirVist._y = Stage.height/2;
		}
		mc.oldX = Math.round(Stage.width*(mc.oldX/stageWidth));
		mc.oldY = Math.round(Stage.height*(mc.oldY/stageHeight));
		mc.newX = Math.round(Stage.width*(mc.newX/stageWidth));
		mc.newY = Math.round(Stage.height*(mc.newY/stageHeight));
		mc.startX = Math.round(Stage.width*(mc.startX/stageWidth));
		mc.startY = Math.round(Stage.height*(mc.startY/stageHeight));
	}
	stageWidth = Stage.width;
	stageHeight = Stage.height;
	//fillBG();
	//	fyllGlow();
};
Stage.addListener(stageL);
////////////////////////////////
/* <bakgrunn>
 
function fillBG() {
with (bakgrunsHolder) {
clear();
beginBitmapFill(bakgrunnPattern);
moveTo(0,0);
lineTo(Stage.width,0);
lineTo(Stage.width,Stage.height);
lineTo(0,Stage.height);
lineTo(0,0);
endFill();
}
}
 
function fyllGlow() {
with (sideGlow) {
clear();
filters = [glow];
beginFill(0xFFFFFF);
moveTo(0, 0);
lineTo(Stage.width, 0);
lineTo(Stage.width, Stage.height);
lineTo(0, Stage.height);
lineTo(0, 0);
endFill();
}
}
 
fillBG();
fyllGlow();
// </bakgrunn>
///////////////////////////////
*/

Старый 06.08.2009, 17:34
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 2  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
Цитата:
mc = _root.attachMovie("fotoHolder....
а если так
Код:
var mc = _root.attachMovie("fotoHolder...

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

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

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

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Код AS1/AS2:
...
function byggBilder() {
	for (i=0; i<photoHolder.length; i++) {
		mc = _root.attachMovie("fotoHolder", "fotoHolder"+i, _root.getNextHighestDepth(), {_xscale:thumbStr, _yscale:thumbStr, _rotation:30-60*Math.random()});
		mc.txt.text = photoHolder[i].desc; // устанавливаем название фотки под картинкой
		mc.url = photoHolder[i].url
		mc.onPress = function() { getURL("http://mysite.com" + this.url, "_blank"); }
		...


Последний раз редактировалось udaaff; 06.08.2009 в 22:13.
Старый 06.08.2009, 23:44
Alishka вне форума Посмотреть профиль Отправить личное сообщение для Alishka Найти все сообщения от Alishka
  № 5  
Ответить с цитированием
Alishka

Регистрация: Aug 2009
Сообщений: 2
спасибо всем за помощь я воспользовался методом предложенным от "udaaff" и все работает как швейцарские часы)))

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

Регистрация: Feb 2011
Сообщений: 1
Добрый день, уважаемые!

Подскажите пожалуйста как убрать в данном скрипте темное свечение по контуру главного фона?

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

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Наверное не применять фильтры к главному фону.
__________________
hauts.ru

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

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

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


 


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


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