Foros del Web » Creando para Internet » Flash y Actionscript »

action y xml

Estas en el tema de action y xml en el foro de Flash y Actionscript en Foros del Web. Hola a todos, escribo porque tengo una pregunta, tengo hecho el típico carrousel de los tutoriales como el de http://theflashblog.com/?cat=2&paged=4 el carrousel 3, y lo ...
  #1 (permalink)  
Antiguo 22/08/2008, 12:26
 
Fecha de Ingreso: junio-2006
Mensajes: 8
Antigüedad: 11 años, 5 meses
Puntos: 0
action y xml

Hola a todos, escribo porque tengo una pregunta, tengo hecho el típico carrousel de los tutoriales como el de

http://theflashblog.com/?cat=2&paged=4

el carrousel 3, y lo que quiero es lo siguiente:

cuando haga click en alguno de los botones, me carge o me atache una película diferente, por ejemplo, tengo un botón de internet, y que cuando clickee en ese botón me atache un movieclip que tengo en la librería, o que haga un loadMovie de una película externa. Cualquiera de las dos me viene bien, preferiría poder atachar un movieclip.

Al margen, lo que no se como resolver es como decirle en el release al boton
que me atache un movieclip diferente para cada sección. Me imagino que hay que poenr el nombre del movieclip en el xml como un child, pero no se como hacerlo.

Dejo el código adjunto para el que lo pueda comprobar y si me puede dar una mano.

Muchas gracias.

Código del fla

import mx.utils.Delegate;
import mx.transitions.Tween;
import mx.transitions.easing.*;
var numOfItems:Number;
var radiusX:Number = 250;
var radiusY:Number = 60;
var centerX:Number = Stage.width/2;
var centerY:Number = Stage.height/2;
var speed:Number = 0.05;
var perspective:Number = 100;
var home:MovieClip = this;
theText._alpha = 0;
var tooltip:MovieClip = this.attachMovie("tooltip", "tooltip", 10000);
tooltip._alpha = 0;
var xml:XML = new XML();
xml.ignoreWhite = true;
xml.onLoad = function() {
var nodes = this.firstChild.childNodes;
numOfItems = nodes.length;
for (var 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.content = nodes[i].attributes.content;
t.icon.inner.loadMovie(nodes[i].attributes.image);
t.r.inner.loadMovie(nodes[i].attributes.image);
t.icon.onRollOver = over;
t.icon.onRollOut = out;
t.icon.onRelease = released;
}
};
function over() {
//BONUS Section
var sou:Sound = new Sound();
sou.attachSound("sover");
sou.start();
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 released() {
home.tooltip._alpha = 0;
for (var i = 0; i<numOfItems; i++) {
var t:MovieClip = home["item"+i];
t.xPos = t._x;
t.yPos = t._y;
t.theScale = t._xscale;
delete t.icon.onRollOver;
delete t.icon.onRollOut;
delete t.icon.onRelease;
delete t.onEnterFrame;
if (t != this._parent) {
var tw:Tween = new Tween(t, "_xscale", Strong.easeOut, t._xscale, 0, 1, true);
var tw2:Tween = new Tween(t, "_yscale", Strong.easeOut, t._yscale, 0, 1, true);
var tw3:Tween = new Tween(t, "_alpha", Strong.easeOut, 100, 0, 1, true);
} else {
var tw:Tween = new Tween(t, "_xscale", Strong.easeOut, t._xscale, 100, 1, true);
var tw2:Tween = new Tween(t, "_yscale", Strong.easeOut, t._yscale, 100, 1, true);
var tw3:Tween = new Tween(t, "_x", Strong.easeOut, t._x, 200, 1, true);
var tw4:Tween = new Tween(t, "_y", Strong.easeOut, t._y, 320, 1, true);
var tw5:Tween = new Tween(theText, "_alpha", Strong.easeOut, 0, 100, 1, true);
theText.text = t.content;
var s:Object = this;
tw.onMotionStopped = function() {
s.onRelease = unReleased;
};
}
}
}
function unReleased() {
//BONUS Section
var sou:Sound = new Sound();
sou.attachSound("sdown");
sou.start();
delete this.onRelease;
var tw:Tween = new Tween(theText, "_alpha", Strong.easeOut, 100, 0, 0.5, true);
for (var i = 0; i<numOfItems; i++) {
var t:MovieClip = home["item"+i];
if (t != this._parent) {
var tw:Tween = new Tween(t, "_xscale", Strong.easeOut, 0, t.theScale, 1, true);
var tw2:Tween = new Tween(t, "_yscale", Strong.easeOut, 0, t.theScale, 1, true);
var tw3:Tween = new Tween(t, "_alpha", Strong.easeOut, 0, 100, 1, true);
} else {
var tw:Tween = new Tween(t, "_xscale", Strong.easeOut, 100, t.theScale, 1, true);
var tw2:Tween = new Tween(t, "_yscale", Strong.easeOut, 100, t.theScale, 1, true);
var tw3:Tween = new Tween(t, "_x", Strong.easeOut, t._x, t.xPos, 1, true);
var tw4:Tween = new Tween(t, "_y", Strong.easeOut, t._y, t.yPos, 1, true);
tw.onMotionStopped = function() {
for (var i = 0; i<numOfItems; i++) {
var t:MovieClip = home["item"+i];
t.icon.onRollOver = Delegate.create(t.icon, over);
t.icon.onRollOut = Delegate.create(t.icon, out);
t.icon.onRelease = Delegate.create(t.icon, released);
t.onEnterFrame = mover;
}
};
}
}
}
function moveTip() {
home.tooltip._x = this._parent._x;
home.tooltip._y = this._parent._y-this._parent._height/2;
}
xml.load("icons.xml");
function mover() {
this._x = Math.cos(this.angle)*radiusX+centerX;
this._y = Math.sin(this.angle)*radiusY+centerY;
var s = (this._y-perspective)/(centerY+radiusY-perspective);
this._xscale = this._yscale=s*60;
this.angle += this._parent.speed;
this.swapDepths(Math.round(this._xscale)+100);
}
this.onMouseMove = function() {
speed = (this._xmouse-centerX)/3500;
};

XML

<icons>

<icon image="icon1.png"

tooltip="Internet" />

<icon image="icon2.png"

tooltip="Radio" />

<icon image="icon3.png"

tooltip="Television" />

<icon image="icon4.png"

tooltip="Cine" />

<icon image="icon5.png"

tooltip="Grafica"/>

<icon image="icon6.png"

tooltip="Via Publica" />

</icons>
  #2 (permalink)  
Antiguo 22/08/2008, 12:37
Usuario no validado
 
Fecha de Ingreso: marzo-2007
Mensajes: 238
Antigüedad: 10 años, 9 meses
Puntos: 5
Respuesta: action y xml

pues si pon en tu xml, siconoces a priori el nombre de cada attach, p.e.:
Código PHP:
<icon image="icon6.png" tooltip="Via Publica"  clipattach="icon6" />
// igual y del mismo att image puedes usarlo como nombre de vinculacion 
y al asignar variables, asi como tienes unas
Código PHP:
t.toolText nodes[i].attributes.tooltip;
t.content nodes[i].attributes.content;
// agregas el nombre del attach
t.content nodes[i].attributes.clipattach
Salu2!

PD Bendito XML.... :)
  #3 (permalink)  
Antiguo 22/08/2008, 14:45
 
Fecha de Ingreso: junio-2006
Mensajes: 8
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: action y xml

Gracias por la respuesta, pero no consigo hacer que me atache un moviclip de la librería, no debería poner en la funcion released algo como:

for (var i = 0; i<numOfItems; i++) {
_root.attachMovie(....)
}

es ahí donde surge mi duda, porqeu ahora tengo en el xml el nombre del movieclip que tengo en la galería, pero quiero hacer que se attache a la escena cuando hago click.

Disculpen las molestias, pero sinceramente no se como resolverlo

Muchas gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:40.