[AS2] comparer mc.height et stage.heigh avec un if

Résolu
emfromkraland Messages postés 10 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 1 novembre 2010 - 31 oct. 2010 à 16:02
emfromkraland Messages postés 10 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 1 novembre 2010 - 1 nov. 2010 à 10:18
Bonjour à vous, je viens pas souvent poster mais là je bloque tout seul et google ne m'aide en rien...
Bref.

J'ai un swf que j'ai besoin de faire slider (par rapport à l'emplacement de la souris) uniquement lorsque la taille de mon clip mc est plus grand que la taille du stage. J'ai tenté de comparer les deux, mais impossible alors que je n'ai pas d'erreur : il zappe mon premier if et se rabat sur le else :/

Du coup, je viens supplier pour un peu d'aide : m'éclairer si j'ai mal fait un truc, etc. Toute aide est la bienvenue pourvu que j'arrive à slider mon menu uniquement lorsqu'il est plus grand que le stage.

Merci d'avance à ceux qui prendront la peine de comprendre mon bazar :S

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

/////////////////////////////////////////////////////////////////////
Stage.align="TL";
Stage.scaleMode = "noScale";
/////////////////////////////////////////////////////////////////////
//initialisation du placement
                mc._y = 20;

//placement des éléments fixe suivant la taille de la fenêtre en cours
var myListener:Object = new Object();
myListener.onResize = function () {
                mc._y = mc.height;
}
Stage.addListener(myListener);
// plus tard, vous pourrez appeler: Stage.removeListener(myListener)


onMouseMove = function()
{
if (stage.height < mc.height) {
t.stop()
buty = -( mc._height - Stage.height)* _ymouse/Stage.height
t = new Tween(mc, "_y", Strong.easeOut, mc._y, buty, 8);
trace ("stage assez petit pour slider");
texte.text ="stage assez petit pour slider";
}
else {
trace ("stage trop grand pour slider");
texte.text = "stage trop grand pour slider";
}
}


////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////

2 réponses

emfromkraland Messages postés 10 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 1 novembre 2010
1 nov. 2010 à 10:18
Hop, désolé du triple post , je viens de trouver la solution en bidouillant et en regardant un autre post dans les topics linkés au mien.
Mon code fonctionne parfaitement : il me permet de slider mon clip lorsque la taille du stage est trop petite pour afficher tout le clip.
Et la fonction permet aussi de revenir au "point mort" après un redimensionnement du stage qui annule donc le slider.

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

/////////////////////////////////////////////////////////////////////
Stage.align="TL";
Stage.scaleMode = "noScale";
/////////////////////////////////////////////////////////////////////
//initialisation du placement
mc._y = 0;

//placement des éléments fixe suivant la taille de la fenêtre en cours
var myListener:Object = new Object();
myListener.onResize = function () {
mc._y = mc.height;
}

Stage.addListener(myListener);
// plus tard, vous pourrez appeler: Stage.removeListener(myListener)

mc.onMouseMove = bougermc;
function bougermc (){
    if (mc._y+mc._height>Stage.height) {
t.stop()
buty = -( mc._height - Stage.height)* _ymouse/Stage.height
t = new Tween(mc, "_y", Strong.easeOut, mc._y, buty, 8);
//trace ("stage assez petit pour slider");
//texte.text ="stage assez petit pour slider";
};
    if (mc._y+mc._height<Stage.height) {
//trace ("stage trop grand pour slider");
//texte.text = "stage trop grand pour slider";
mc._y = 0;
};
}
3
emfromkraland Messages postés 10 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 1 novembre 2010
1 nov. 2010 à 09:56
UP !
0
Rejoignez-nous