Liens xml et carrousel Flash

lucile266 Messages postés 3 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 4 juin 2008 - 3 juin 2008 à 16:01
polivo2 Messages postés 4 Date d'inscription vendredi 21 décembre 2007 Statut Membre Dernière intervention 18 novembre 2009 - 31 juil. 2008 à 18:32
Bonjour à tous,

J'ai besoin d'un petit coup de main : Je n'arrive pas à mettre en relation mon fichier xml avec mon fichier flash dans le but de créer un carrousel 3d. Les liens ne fonctionnent pas.

Voici le code de mon flash :

import mx.utils.Delegate;



var numOfItems:Number;
var radiusX:Number = 200;
var radiusY:Number = 200;
var centerX:Number = Stage.width / 1.9;
var centerY:Number = Stage.height / 1.5;
var speed:Number = 0.01;
var perspective:Number = 230;
var home:MovieClip = this;



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.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()
{
 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()
{
 this.onRelease = function() {
 getURL(URL,_blank);
}
}



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*100;
 this.angle += this._parent.speed;
 this.swapDepths(Math.round(this._xscale) + 100);
}



this.onMouseMove = function()
{
 speed = (this._xmouse-centerX)/ 15000;
}

Et voici mon xml :


































Merci d'avance




 



 






 

7 réponses

Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
3 juin 2008 à 18:59
Eheh vive gotoandlearn ;)

Tu a un probleme dans ta fonction :
function released()
{
 this.onRelease = function() {
 getURL(URL,_blank);
}

> Déjà _blank s'écris entre guillemet "_blank"
> Ensuite URL ne fais reference a aucun String dans ton code.

Tu as oublier de specifier le lien vers l'attribut url du xml pour chaque items :
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.url = nodes[i].attributes.url;
  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;
 }
}

Et donc ta fonction released devient :
function released()
{
 this.onRelease = function() {
 getURL(this.url,"_blank");
}

Normalement sa devrait marcher ;)

PS : je bosse moi aussi en ce moment sur  cette source lol
0
lucile266 Messages postés 3 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 4 juin 2008
3 juin 2008 à 20:38
Merci pour cette réponse si rapide! Je vais le tester de ce pas....
0
lucile266 Messages postés 3 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 4 juin 2008
4 juin 2008 à 10:05
ça ne marche pas . Mes liens ne sont pas définis. Dur dur!!!
Merci quand même pour ton aide.
0
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
4 juin 2008 à 12:11
Tu est sur que ton code javascript est correct ?

Pour tester. par exemple pour l'tem 3 met un lien vers un site web genre http://www.flashkod.com

Et test le lien de l'item 3... si sa marche c'est ton JS :-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
4 juin 2008 à 20:31
petite correction dans ta fonction :
function released()
{
 this.onRelease = function() {
 getURL(this.url,"_blank");
}

Pourquoi tu mets une fonction onRelease a l'intérieur d'une fonction onRelease ?

Voir : t.icon.onRelease = released;
(Tu a deja indiquer que c'est une fonction onRelease)

Alors ta fonction released devient :
function released()
{
 getURL(this.url,"_blank");
}

C'est donc peut-etre a cause de sa que ton link marche pas ;)
0
seth1 Messages postés 3 Date d'inscription samedi 18 novembre 2006 Statut Membre Dernière intervention 9 juin 2008
9 juin 2008 à 11:53
Bonjour à tous et à toutes !
Je travaille actuellement (moi aussi !) sur cette source, mais sur la v3 (celle qui ouvre des menus de description)
Cependant, je cherche a créer la même fonction que onRelease, mais automatiquement, toutes les 10 sec. par exemple, pour présenter les différentes icônes même s'il n'y a pas intervention de l'utilisateur.

Mon problème est que je n'arrive pas à créer ce système d'automatisation de l'ouverture des descriptions. J'ai bien testé avec la fonction setIntervel(), mais bon...

Voilà mon code source :

import mx.utils.Delegate;
import mx.transitions.Tween;
import mx.transitions.easing.*;

var numOfItems:Number;
var radiusX:Number = 130;
var radiusY:Number = 20;
var centerX:Number = Stage.width / 2;
var centerY:Number = Stage.height / 2;
var speed:Number = 0.05;
var perspective:Number = 120;
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()
{
   
    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,200,1,true);
            var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,t._yscale,200,1,true);
            var tw3:Tween = new Tween(t,"_x",Strong.easeOut,t._x,50,1,true);
            var tw4:Tween = new Tween(t,"_y",Strong.easeOut,t._y,-10,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 released2() // fonction avec laquelle je souhaite ouvrir automatiquement les pages de description
{
   
    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;
       
       
            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);
       
            var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,t._xscale,200,1,true);
            var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,t._yscale,200,1,true);
            var tw3:Tween = new Tween(t,"_x",Strong.easeOut,t._x,50,1,true);
            var tw4:Tween = new Tween(t,"_y",Strong.easeOut,t._y,-10,1,true);
            var tw5:Tween = new Tween(theText,"_alpha",Strong.easeOut,0,100,1,true);
            theText.text = t.content;
            var s:Object = this;
           

       
    }
}

setInterval(released2, 2000)

function unReleased()
{
   
    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,200,t.theScale,1,true);
            var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,200,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*100;
    this.angle += this._parent.speed;
    this.swapDepths(Math.round(this._xscale) + 100);
}

this.onMouseMove = function()
{
    speed = (this._xmouse-centerX)/2500;
}

et mon XML :

Merci d'avance, si vous voyez comment faire...
0
polivo2 Messages postés 4 Date d'inscription vendredi 21 décembre 2007 Statut Membre Dernière intervention 18 novembre 2009
31 juil. 2008 à 18:32


0
Rejoignez-nous