Bonjour,
Voici le .fla qui me pose problème :
Code ActionScript :
import caurina.transitions.Tweener;
var xmlData = "menu.xml";
var xmlObj:XML;
var textY = new Array();
var bkgColor = new Array();
var spacing = 1; //space between menu items
var bkgItemWidth = 17; //how much the item background to be scaled
//animation times
var timeBkg = 1;
var timeText1 = 2;
var timeText2 = 0.5;
//end animation times
//liniar, easeOutElastic, easeOutBounce, easeOutBack, easeOutCirc
// easeInElastic, easeInBounce, easeInBack, easeInCirc
var effTransitionBkg = "linear";
var effTransitionText = "linear";
var numItems;
var xa;
var myMovie = this;
var objects;
init();//init call
function init() {
xmlObj = new XML(xmlData);
xmlObj.ignoreWhite = true;
xmlObj.load(xmlData);
this.onEnterFrame = checkXMLprogress;
}
function checkXMLprogress() {
var tmpBytesLoaded = xmlObj.getBytesLoaded();
var tmpBytesTotal = xmlObj.getBytesTotal();
if ((tmpBytesLoaded == tmpBytesTotal) && (tmpBytesTotal>4)) {
delete this.onEnterFrame;
addMenuItems();
}
//end if
}
function addMenuItems() {
objects = xmlObj.firstChild.childNodes;
numItems = objects.length;
for (var i = 0; i<numItems; i++) {
startItems(i);
}
}
function startItems(i) {
var menuitem = "item"+i;
var maskInstance = "mask"+i;
var textInstance = "text"+i;
myMovie.attachMovie("menuitem",menuitem,this.getNextHighestDepth());
myMovie.attachMovie("mask",maskInstance,this.getNextHighestDepth());
myMovie.attachMovie("textMc",textInstance,this.getNextHighestDepth());
myMovie[textInstance].tf.htmlText = objects[i].childNodes[0].firstChild.nodeValue;
myMovie[textInstance]._alpha = 0;
if (i>0) {
myMovie[menuitem]._y = i*(myMovie[menuitem]._height+spacing);
myMovie[maskInstance]._y = i*(myMovie[maskInstance]._height+spacing);
myMovie[textInstance]._y = i*(myMovie[maskInstance]._height+spacing);
}
myMovie[menuitem].url = objects[i].attributes.url;
myMovie[textInstance].tf.autoSize = true;
var my_color:Color = new Color(myMovie[menuitem].itemBkg);
my_color.setRGB(objects[i].attributes.bkg);
xStart = myMovie[menuitem]._xscale;
myMovie[maskInstance].onRollOver = function() {
var initX = xStart*bkgItemWidth;
Tweener.addTween(myMovie["item"+i],{_xscale:initX,time:timeBkg,transition:effTransitionBkg});
this._xscale = initX;
var xTextFinish = this._width - myMovie["text"+i].tf._width - 5;
Tweener.addTween(myMovie["text"+i],{_x:xTextFinish,time:timeText1,transition:effTransitionText});
Tweener.addTween(myMovie["text"+i],{_alpha:100,time:timeText1,transition:effTransitionText});
};
myMovie[maskInstance].onRollOut = function() {
Tweener.addTween(myMovie["item"+i],{_xscale:xStart,time:1,transition:effTransitionBkg});
var xTextFinish2 = this._x;
Tweener.addTween(myMovie["text"+i],{_x:xTextFinish2,time:timeText2,transition:effTransitionText});
Tweener.addTween(myMovie["text"+i],{_alpha:0,time:timeText2,transition:effTransitionText});
this._xscale = xStart;
};
[color=red]myMovie[maskInstance].onRelease = function() {
getURL(myMovie["item"+i].url, "_blank");
};
}[/color]
[b]Pour uploader le tweener menu, j'ai un fichier XML dont voici le code :[/b]
[code=xml]<?xml version="1.0"?>
<menu>
<item bkg="0x6B6052" url="http://www.flashcomponents.net">
<content><![CDATA[<font color="#FFFFFF" size="23px">PAYSAGES IMAGINAIRES</font>]]></content>
</item>
<item bkg="0xE44A25" url="http://www.flashcomponents.net">
<content><![CDATA[<font color="#FFFFFF" font-weight="bold" size="23px">LES Z'AMIS Z'ANIMAUX</font>]]></content>
</item>
Pour que mon slider ou bandeau défile de gauche à droite et inversement, je clique sur un des "ITEMS"... En théorie, je sélectionne le bouton, puis, j'entre le code suivant :
Code ActionScript :
on (release) {
menu1.targetx = 0.0;
}
ceci, pour chaque bouton.
Or, étant donné que mon menu est uploadé via l'XML et si je me réfère au code de mon Tweener Menu, j'ai ceci :
"myMovie[maskInstance].onRelease = function() {
getURL(myMovie["item"+i].url, "_blank");
};
Quant à mon fichier XML, je retrouve : url="http://www...."
J'avoue être un peu perdue... Quel code dois-je inscrire pour faire défiler mon bandeau ?
Merci de votre aide.