Просмотр полной версии : одна функция на массив
zveryuka
12.04.2010, 13:53
Добрый день.
У меня во флеш проект загружается с помощью ХМЛ много разных изображений как можно с помощью АС2 сделать такую штуку как в АС3 ?
Чтобы соответственно при наведении и клике на таргет выполнялись определенные действия
bob.addEventListener(MouseEvent.MOUSE_OVER,fncOver)
bob.addEventListener(MouseEvent.MOUSE_OUT,fncOut)
function fncOver(e:MouseEvent){
e.target.alpha = 0.5;
}
function fncOut(e:MouseEvent){
e.target.alpha = 1;
}
bob.onRollOver = fncOver;
bob.onRollOut = fncOut;
function fncOver(){
this._alpha = 0.5;
}
function fncOut(){
this._alpha = 1;
}
zveryuka
12.04.2010, 14:25
bob.onRollOver = fncOver;
bob.onRollOut = fncOut;
function fncOver(){
this._alpha = 0.5;
}
function fncOut(){
this._alpha = 1;
}
так альфой делается целый мувиклип "bob" , а нужно сделать так чтобы альфился по отдельности каждый обьект который находиться в контейнере "bob"
Тут вам придется на каждый ваш мувик вешать обработчик.
Если нужно, чтобы альфились все вложенные мувиклипы, и, при этом, с одинаковым значением прозрачности, то рационально менять прозрачность их контейнеру.
Если нужно вложенным клипам менять прозрачность независимо друг от друга, то необходимо обращаться по их instance name или ссылке. Например так:
bob.onRollOver = fncOver;
bob.onRollOut = fncOut;
function fncOver(){
this.innerMovieClip_1._alpha = 50;
this.innerMovieClip_2._alpha = 10;
}
function fncOut(){
this.innerMovieClip_1._alpha = 100;
this.innerMovieClip_2._alpha = 50;
}
Разве в вашем коде прозрачность применяется к вложенным мувиклипам?
Hauts, прозрачность применяется к целевому объекту. Обработчик будет ловить события как рассылаемые родителю, так и от детей на фазе всплытия.
zveryuka
12.04.2010, 14:39
вот для большей ясности - как у меня в проекте расположены обьекты ...
function loadXML(file_xml) {
var xml:XML = new XML();
var tmp:Array = new Array();
xml.ignoreWhite = true;
xml.onLoad = function(success) {
if (success) {
var nodeJackets = xml.firstChild.firstChild.childNodes;
var nodepants = xml.firstChild.childNodes[2].childNodes;
var nodeAccessories = xml.firstChild.childNodes[1].childNodes;
//trace(nodeAccessories.length)
for (var i = 0; i<nodepants.length; i++) {
loadpants(i,nodepants[i].attributes.pants,nodepants[i].attributes.X,nodepants[i].attributes.Y);
loadJackets(i,nodeJackets[i].attributes.Jackets,nodeJackets[i].attributes.X,nodeJackets[i].attributes.Y);
loadAccessories(i,nodeAccessories[i].attributes.Accessories,nodeAccessories[i].attributes.X,nodeAccessories[i].attributes.Y);
}
}
};
xml.load(file_xml);
}
///////////////////////////////////////////////pants
function loadpants(i, pants, xPost, yPost) {
var target_mc:MovieClip = cont.createEmptyMovieClip("target"+i, cont.getNextHighestDepth());
var mcl:MovieClipLoader = new MovieClipLoader();
var obj:Object = new Object();
obj.onLoadInit = function(mc:MovieClip) {
mc._x = xPost;
mc._y = yPost;
};
mcl.addListener(obj);
mcl.loadClip(pants,target_mc);
}
///////////////////////////////////////////////Jackets
function loadJackets(i, Jackets, xPost, yPost) {
var Jackets_mc:MovieClip = cont.createEmptyMovieClip("Jackets"+i, cont.getNextHighestDepth());
var mclJackets:MovieClipLoader = new MovieClipLoader();
var objJackets:Object = new Object();
objJackets.onLoadInit = function(mcJackets:MovieClip) {
mcJackets._x = xPost;
mcJackets._y = yPost;
mcJackets._xscale = 30;
mcJackets._yscale = 30;
};
mclJackets.addListener(objJackets);
mclJackets.loadClip(Jackets,Jackets_mc);
mcJackets.onRollOver = fncOver;
mcJackets.onRollOut = fncOut;
function fncOver(){
this._alpha = 0.5;
}
function fncOut(){
this._alpha = 1;
}
}
////////////////////////////////////////////////////Accessories
function loadAccessories(i, Accessories, xPost, yPost) {
var Accessories_mc:MovieClip = cont.createEmptyMovieClip("Accessories"+i, cont.getNextHighestDepth());
var mclAccessories:MovieClipLoader = new MovieClipLoader();
var objAccessories:Object = new Object();
objAccessories.onLoadInit = function(mcAccessories:MovieClip) {
mcAccessories._x = xPost;
mcAccessories._y = yPost;
mcAccessories._xscale = 10;
mcAccessories._yscale = 10;
};
mclAccessories.addListener(objAccessories);
mclAccessories.loadClip(Accessories,Accessories_mc);
}
loadXML("bob.xml");
хотя только начал делать проект.. возможно лутше в АС3 переделать...(но АС3 тока начал разбирать (( )
Добавлено через 3 часа 21 минуту
хех...помучался, но все-таки переделал код в АС3 - ато АС2 уж больно неповоротлив))
спс всем за советы...
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.