ajouter entre le masque de scroller

  • virtualgeorge
  • Newbie
  • Newbie
  • No Avatar
  • Inscription: Mai 19, 2007
  • Messages: 13
  • Status: Offline

Message Juillet 15th, 2008, 10:11 am

Dans Flash 8, j'ai créé un effet de défilement thumnail à partir d'un tutoriel et ont ceci de l'image 1

Code: [ Select ]
panel.onRollOver = panelOver;

function panelOver() {
    this.onEnterFrame = scrollPanel;
    delete this.onRollOver;
}

var b = stroke.getBounds(_root);

function scrollPanel () {
    if (_xmouse<b.xMin || _xmouse>b.xMax || _ymouse<b.yMin || _ymouse>b.ymax) {
    this.onRollOver = panelOver;
    delete this.onEnterFrame;
}

    if (panel._y >= 4) {
        panel._y = 4;
     }
    if (panel._y <= -248) {
        panel._y = -248;
     }

    //set to half stage width
    var ydist = _ymouse - 140;
    
    //sets speed - lower = faster
    panel._y += -ydist / 7;

        }
  1. panel.onRollOver = panelOver;
  2. function panelOver() {
  3.     this.onEnterFrame = scrollPanel;
  4.     delete this.onRollOver;
  5. }
  6. var b = stroke.getBounds(_root);
  7. function scrollPanel () {
  8.     if (_xmouse<b.xMin || _xmouse>b.xMax || _ymouse<b.yMin || _ymouse>b.ymax) {
  9.     this.onRollOver = panelOver;
  10.     delete this.onEnterFrame;
  11. }
  12.     if (panel._y >= 4) {
  13.         panel._y = 4;
  14.      }
  15.     if (panel._y <= -248) {
  16.         panel._y = -248;
  17.      }
  18.     //set to half stage width
  19.     var ydist = _ymouse - 140;
  20.     
  21.     //sets speed - lower = faster
  22.     panel._y += -ydist / 7;
  23.         }


J'ai un masque si vous voyez que de 3 vignettes, puis faites défiler pour voir le reste. Lorsque vous déplacez la souris sur le film que vous pouvez faire défiler les images. Mais je veux entre le masque de façon d'abord il est petit et ne montre que 1 thumnail, puis quand moused dessus de la souris se développe pour exposer thumnails plus alors j'ai ajouté ceci au nom de code ci-dessus le masque "masque":

Code: [ Select ]
 //mask tween 
    mask.onRollOver = function ()
        {
        mask.gotoAndPlay(2);
        }
    mask.onRollOut = function ()
        {
        mask.gotoAndPlay(11);
  1.  //mask tween 
  2.     mask.onRollOver = function ()
  3.         {
  4.         mask.gotoAndPlay(2);
  5.         }
  6.     mask.onRollOut = function ()
  7.         {
  8.         mask.gotoAndPlay(11);


Alors maintenant, le masque ne interpolation quand basculé & out mais maintenant mon scroller ne fonctionne pas. Je ne l'interpolation de masque mal donc il vis le reste du code si mes images ne défilent pas lorsque moused plus.

Quelqu'un peut-il s'il vous plaît point de moi dans la bonne direction?
merci!
  • Anonymous
  • Bot
  • No Avatar
  • Inscription: 25 Feb 2008
  • Messages: ?
  • Loc: Ozzuland
  • Status: Online

Message Juillet 15th, 2008, 10:11 am

  • graphixboy
  • Control + Z
  • Mastermind
  • Avatar de l’utilisateur
  • Inscription: Juil 11, 2005
  • Messages: 1828
  • Loc: In the Great White North
  • Status: Offline

Message Juillet 15th, 2008, 11:07 am

bien le problème, c'est que vous avez maintenant deux objets "souris active" empilés au-dessus de l'autre. Vous avez besoin de ne pas faire le masque, un bouton (quelque chose devient un bouton lorsque vous attribuez une onRollOver, etc event)

donc vous avez juste besoin de combiner les deux actions...
Code: [ Select ]
function panelOver() {
this.onEnterFrame = scrollPanel;
delete this.onRollOver;
mask.gotoAndPlay(2);
}

panel.onRollOut = function(){
this._parent.mask.gotoAndPlay(11);
}
  1. function panelOver() {
  2. this.onEnterFrame = scrollPanel;
  3. delete this.onRollOver;
  4. mask.gotoAndPlay(2);
  5. }
  6. panel.onRollOut = function(){
  7. this._parent.mask.gotoAndPlay(11);
  8. }


Si cela ne fonctionne pas je utiliser une hitTest sur le panneau et savoir si la souris est sur le panneau ou non (si plus de faire défiler et le masque, arrêtez d'autre). Cela va supprimer des boutons de l'équation entièrement.
If at first you don't succeed F1... If that doesn't work try Google!
//// Designer, Developer & Teacher - Interactive, Motion and 3D \\\\
Portfolio at WhenImNotSleeping.com
  • virtualgeorge
  • Newbie
  • Newbie
  • No Avatar
  • Inscription: Mai 19, 2007
  • Messages: 13
  • Status: Offline

Message Juillet 15th, 2008, 12:33 pm

Merci! C'est presque fonctionné, mais j'ai oublié de mentionner que mes actions ont Thums trop si elles ont des effets de renversement.

Quand je ne la précède, je perds mon renversement des effets sur le Thums.
Lorsque je supprime les
panel.onRollOut = function () (
this._pare not.mask.gotoAndPlay (11);
)

Ensuite, il fonctionne sauf que je viens de besoin d'une autre façon d'obtenir le onRollOut effet entre le masque. Je vais chercher hitTest que je ne suis pas sûr de savoir comment le faire.

Voici un exemple de ce que j'ai
http://salonjoshuaboutique.com/ftest.html
  • graphixboy
  • Control + Z
  • Mastermind
  • Avatar de l’utilisateur
  • Inscription: Juil 11, 2005
  • Messages: 1828
  • Loc: In the Great White North
  • Status: Offline

Message Juillet 15th, 2008, 12:51 pm

hitTest yeah est le chemin à parcourir. Fondamentalement, ce qui ne fait que vous donner un vrai ou faux si des objets (peut inclure le pointeur de votre souris) se chevauchent de sorte que vous n'avez pas besoin d'utiliser une action de la souris pour déclencher le mouvement, etc

J'ai construit quelque chose comme ça il ya quelque temps. Theres probablement beaucoup plus que vous avez besoin ici, mais n'hésitez pas à utiliser tout ce que vous avez besoin. (mines d'un effet de défilement sur le côté afin que vous devrez changer le x et ys

Code: [ Select ]
 
//-------------------------------------------------------------//
//                   Scroller Controls
//-------------------------------------------------------------//
// ------- setup ---//
var myScroller = scrollBar_mc;  // what gets scrolled
var myTarget = scrollControl; // scroll control bar
var myMask = scrollMask; // mask shape
var maxSpeed = 15; //maximum number of pixels to move per frame.
 
// ------- scroll system ---//
var scrollCenter = myMask._width/2;
 
   
myTarget.onEnterFrame = function()
{
    if(myScroller._width > myMask._width){
        var xMouse = Math.floor(myTarget._xmouse);
        var yMouse = Math.floor(myTarget._ymouse);
       
        if (myTarget.hitTest(_root._xmouse, _root._ymouse, false))
        {
            if(!myScroller.isTweening()){
                myScroller.stopTween();
            }
           
            // check if mouse is inside controler area and move content
            var containerEnd = myMask._x + myMask._width;
            var scrollerEnd = myScroller._x + myScroller._width;
           
            //need absolute value of distance from center.
            var absDiff = Math.abs(xMouse - scrollCenter);
           
            //figure out percentage from center to use to multiply and figure out speed.
            var percentage = absDiff/scrollCenter;
           
            //get speed.
            var curSpeed = maxSpeed * percentage;
           
            if(xMouse > scrollCenter && containerEnd < scrollerEnd){
                // if mouse is on right side of the controler scroll clip left
                myScroller._x = Math.round(myScroller._x - curSpeed);
            }else if(xMouse < scrollCenter && myMask._x > myScroller._x){
                // if mouse is on left side of the controler scroll clip right
                myScroller._x = Math.round(myScroller._x + curSpeed);
            }
            else if( myMask._x < myScroller._x)
            {
                myScroller._x = myMask._x;
            }
        }else{
           
            // if mouse leaves scroll area, fix the content
           
            // remove if we don't like the bounce //
            var dist = Math.round((myMask._x - myScroller._x)/_global.blockWidth) * _global.blockWidth;
            var endTarg = Math.round(myMask._x - dist + 2);
           
            if(!myScroller.isTweening()){
                myScroller.tween("_x",endTarg,1,"easeOutExpo");
            }
           
           
            var moveTarg = (myScroller._x + endTarg)* 0.5;
            if(myScroller._x > endTarg || myScroller._x < endTarg){
                var moveDiff = endTarg - moveTarg;
                if(moveDiff < 0.5){
                    myScroller._x = endTarg;
                }else{
                    myScroller._x = moveTarg;
                }
            }
            // remove is we don't like the bounce //
        }
    }
}
 
  1.  
  2. //-------------------------------------------------------------//
  3. //                   Scroller Controls
  4. //-------------------------------------------------------------//
  5. // ------- setup ---//
  6. var myScroller = scrollBar_mc;  // what gets scrolled
  7. var myTarget = scrollControl; // scroll control bar
  8. var myMask = scrollMask; // mask shape
  9. var maxSpeed = 15; //maximum number of pixels to move per frame.
  10.  
  11. // ------- scroll system ---//
  12. var scrollCenter = myMask._width/2;
  13.  
  14.    
  15. myTarget.onEnterFrame = function()
  16. {
  17.     if(myScroller._width > myMask._width){
  18.         var xMouse = Math.floor(myTarget._xmouse);
  19.         var yMouse = Math.floor(myTarget._ymouse);
  20.        
  21.         if (myTarget.hitTest(_root._xmouse, _root._ymouse, false))
  22.         {
  23.             if(!myScroller.isTweening()){
  24.                 myScroller.stopTween();
  25.             }
  26.            
  27.             // check if mouse is inside controler area and move content
  28.             var containerEnd = myMask._x + myMask._width;
  29.             var scrollerEnd = myScroller._x + myScroller._width;
  30.            
  31.             //need absolute value of distance from center.
  32.             var absDiff = Math.abs(xMouse - scrollCenter);
  33.            
  34.             //figure out percentage from center to use to multiply and figure out speed.
  35.             var percentage = absDiff/scrollCenter;
  36.            
  37.             //get speed.
  38.             var curSpeed = maxSpeed * percentage;
  39.            
  40.             if(xMouse > scrollCenter && containerEnd < scrollerEnd){
  41.                 // if mouse is on right side of the controler scroll clip left
  42.                 myScroller._x = Math.round(myScroller._x - curSpeed);
  43.             }else if(xMouse < scrollCenter && myMask._x > myScroller._x){
  44.                 // if mouse is on left side of the controler scroll clip right
  45.                 myScroller._x = Math.round(myScroller._x + curSpeed);
  46.             }
  47.             else if( myMask._x < myScroller._x)
  48.             {
  49.                 myScroller._x = myMask._x;
  50.             }
  51.         }else{
  52.            
  53.             // if mouse leaves scroll area, fix the content
  54.            
  55.             // remove if we don't like the bounce //
  56.             var dist = Math.round((myMask._x - myScroller._x)/_global.blockWidth) * _global.blockWidth;
  57.             var endTarg = Math.round(myMask._x - dist + 2);
  58.            
  59.             if(!myScroller.isTweening()){
  60.                 myScroller.tween("_x",endTarg,1,"easeOutExpo");
  61.             }
  62.            
  63.            
  64.             var moveTarg = (myScroller._x + endTarg)* 0.5;
  65.             if(myScroller._x > endTarg || myScroller._x < endTarg){
  66.                 var moveDiff = endTarg - moveTarg;
  67.                 if(moveDiff < 0.5){
  68.                     myScroller._x = endTarg;
  69.                 }else{
  70.                     myScroller._x = moveTarg;
  71.                 }
  72.             }
  73.             // remove is we don't like the bounce //
  74.         }
  75.     }
  76. }
  77.  
If at first you don't succeed F1... If that doesn't work try Google!
//// Designer, Developer & Teacher - Interactive, Motion and 3D \\\\
Portfolio at WhenImNotSleeping.com
  • virtualgeorge
  • Newbie
  • Newbie
  • No Avatar
  • Inscription: Mai 19, 2007
  • Messages: 13
  • Status: Offline

Message Juillet 15th, 2008, 1:35 pm

Merci! Je vais voir si je peux comprendre cela :)

Afficher de l'information

  • Total des messages de ce sujet: 5 messages
  • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 37 invités
  • Vous ne pouvez pas poster de nouveaux sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas éditer vos messages
  • Vous ne pouvez pas supprimer vos messages
  • Vous ne pouvez pas joindre des fichiers
 
 

© 2011 Unmelted, LLC. Ozzu® est une marque déposée de Unmelted, LLC