Tema: action y xml
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/08/2008, 11:26
eltincho_apv
 
Fecha de Ingreso: junio-2006
Mensajes: 8
Antigüedad: 17 años, 10 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>