View Single Post

  #2 (permalink)  
Old 02-09-07, 09:31
Flep Flep is offline
Administrator
 
Join Date: Jul 2007
Location: Cesena
Posts: 4,535
Rep Power: 6
Flep is on a distinguished road
Ciao Gaelle :)

1. Non credo sia possibile con quello script, bisognerebbe rifare quasi tutto
2. Hai provato a rimpicciolire le immagini delle thumbs ?
3. Puoi sistemare con questa nuova Main.as:

Code:
 package
{
    import flash.display.MovieClip;
    import flash.filters.ColorMatrixFilter;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import fl.transitions.*;
    import fl.transitions.easing.Regular;
    import flash.events.ContextMenuEvent;
    import flash.ui.ContextMenu;
    import flash.ui.ContextMenuItem;
    import flash.net.URLRequest;
    import flash.net.navigateToURL;
    
    public class Main extends MovieClip
    {
        private var holders_array:Array;
        private var thumbs_array:Array;
        private var masks_array:Array;
        private var filters_array:Array;
        private var pics_array:Array;
        
        private var ColorMatrix:ColorMatrixFilter;
        
        private var currentPic:int=0;

        public function Main()
        {
            init();
        }
        
        private function init():void
        {
            stage.frameRate=31;
            
            initMenu();
            
            holders_array=new Array(holder_mc.holder_pic_0_mc,
                                holder_mc.holder_pic_1_mc,
                                holder_mc.holder_pic_2_mc,
                                holder_mc.holder_pic_3_mc,
                                holder_mc.holder_pic_4_mc,
                                holder_mc.holder_pic_5_mc,
                                holder_mc.holder_pic_6_mc);
            
            thumbs_array=new Array(holder_mc.holder_pic_0_mc.thumb_0_mc,
                                holder_mc.holder_pic_1_mc.thumb_1_mc,
                                holder_mc.holder_pic_2_mc.thumb_2_mc,
                                holder_mc.holder_pic_3_mc.thumb_3_mc,
                                holder_mc.holder_pic_4_mc.thumb_4_mc,
                                holder_mc.holder_pic_5_mc.thumb_5_mc,
                                holder_mc.holder_pic_6_mc.thumb_6_mc);
            
            pics_array=new Array(pic_0_mc,pic_1_mc,pic_2_mc,pic_3_mc,pic_4_mc,pic_5_mc,pic_6_mc);
            
            masks_array=new Array();
            
            filters_array=new Array(1,0,0,0,-50,0,1,0,0,-50,0,0,1,0,-50,0,0,0,1,0);
            
            ColorMatrix=new ColorMatrixFilter(filters_array);
            
            positionthumbs_array();
            createmasks_array();
            addListeners();
            
            TransitionManager.start(pics_array[0],{type:Photo,direction:Transition.IN,
                                            duration:.5,easing:Regular.easeOut});
        }
        
        private function positionthumbs_array():void
        {
            for(var i:int=0;i<holders_array.length;i++)
            {
                pics_array[i].visible=false;
                holders_array[i].y=thumbs_array[0].height/2*i;
                thumbs_array[i].filters=[ColorMatrix];
                thumbs_array[i].isPressed=false;
                thumbs_array[i].mouseChildren=false;
            }
            holder_mc.y=(stage.stageHeight-holder_mc.height)/2;
        }
        
        private function createmasks_array():void
        {
            for(var i:int=0;i<holders_array.length;i++)
            {
                var masking:MovieClip=new MovieClip();
                masking.graphics.beginFill(0x66FF00,1);
                masking.graphics.drawRect(-30,-15,60,30);
                
                masking.id=i;
                holders_array[i].id=i;
                thumbs_array[i].id=i;
                holders_array[i].buttonMode=true;
                
                masking.x=thumbs_array[i].x+thumbs_array[i].width/2;
                masking.y=thumbs_array[i].y+thumbs_array[i].height/2;
                holders_array[i].addChild(masking);
                thumbs_array[i].mask=masking;
                masks_array.push(masking);
            }
        }
        
        private function addListeners():void
        {
            for(var i:int=0;i<holders_array.length;i++)
            {
                holders_array[i].addEventListener(MouseEvent.MOUSE_OVER,mouseIsOver);
                holders_array[i].addEventListener(MouseEvent.MOUSE_OUT,mouseIsOut);
                holders_array[i].addEventListener(MouseEvent.MOUSE_DOWN,showPicture);
            }
        }
        
        private function mouseIsOver(m:MouseEvent):void
        {
            m.currentTarget.isPressed=false;
            m.currentTarget.removeEventListener(Event.ENTER_FRAME,scaleDown);
            m.currentTarget.addEventListener(Event.ENTER_FRAME,liftUp);
        }
        
        private function mouseIsOut(m:MouseEvent):void
        {
            m.currentTarget.removeEventListener(Event.ENTER_FRAME,liftUp);
            if(!m.currentTarget.isPressed)
                m.currentTarget.addEventListener(Event.ENTER_FRAME,scaleDown);
        }
        
        private function closing(m:MovieClip):void
        {
            m.addEventListener(Event.ENTER_FRAME,scaleDown);
        }
        
        private function liftUp(e:Event):void
        {
            var n:int=50;
            var newFilters:Array=new Array(1,0,0,0,n,0,1,0,0,n,0,0,1,0,n,0,0,0,1,0);
            var newColorMatrix_filter:ColorMatrixFilter= new ColorMatrixFilter(newFilters);
            thumbs_array[e.currentTarget.id].filters=[newColorMatrix_filter];
        
            var dy:Number=60-masks_array[e.currentTarget.id].height;
            var ay:Number=dy*.2;
            masks_array[e.currentTarget.id].height+=ay;
            
            for(var i:Number=e.currentTarget.id+1;i<thumbs_array.length;i++)
            {
                thumbs_array[i].y+=ay/2;
                masks_array[i].y=thumbs_array[i].y+thumbs_array[i].height/2;
            }
            for(var j:Number=e.currentTarget.id-1;j>=0;j--)
            {
                thumbs_array[j].y-=ay/2;
                masks_array[j].y=thumbs_array[j].y+thumbs_array[j].height/2;
            }
            if(ay<=.1)
            {
                masks_array[e.currentTarget.id].height=60;
                e.currentTarget.removeEventListener(Event.ENTER_FRAME,liftUp);
            }
        }
        
        private function scaleDown(e:Event):void
        {
            var n:int=-50;
            var newFilters:Array=new Array(1,0,0,0,n,0,1,0,0,n,0,0,1,0,n,0,0,0,1,0);
            var newColorMatrix_filter:ColorMatrixFilter= new ColorMatrixFilter(newFilters);
            thumbs_array[e.currentTarget.id].filters=[newColorMatrix_filter];
            
            var dy:Number=30-masks_array[e.currentTarget.id].height;
            var ay:Number=dy*.2;
            masks_array[e.currentTarget.id].height+=ay;
            
            for(var i:Number=e.currentTarget.id+1;i<thumbs_array.length;i++)
            {
                thumbs_array[i].y+=ay/2;
                masks_array[i].y=thumbs_array[i].y+thumbs_array[i].height/2;
            }
            for(var j:Number=e.currentTarget.id-1;j>=0;j--)
            {
                thumbs_array[j].y-=ay/2;
                masks_array[j].y=thumbs_array[j].y+thumbs_array[j].height/2;
            }
            if(Math.abs(ay)<=.1)
            {
                masks_array[e.currentTarget.id].height=30;
                e.currentTarget.removeEventListener(Event.ENTER_FRAME,scaleDown);
                e.target.isPressed=false;
            }
        }
        
        private function showPicture(m:MouseEvent):void
        {
            checkOthers(m.currentTarget.id);
            m.currentTarget.isPressed=true;
            for(var i:int=0;i<pics_array.length;i++)
            {
                if(i==m.currentTarget.id)
                {
                    pics_array[i].visible=true;
                    TransitionManager.start(pics_array[i],{type:Photo,direction:Transition.IN,
                                            duration:1,easing:Regular.easeOut});
                }
                else
                {
                    TransitionManager.start(pics_array[currentPic],{type:Photo,direction:Transition.OUT,
                                            duration:1,easing:Regular.easeOut});
                }
            }
            currentPic=m.currentTarget.id;
        }
        
        private function checkOthers(n:int):void
        {
            for(var i:int=0;i<thumbs_array.length;i++)
            {
                if(i!=n)
                {
                    thumbs_array[i].isPressed=false;
                    closing(thumbs_array[i]);
                }
            }
        }
        
        // NON rimuovere per favore !
        public function initMenu():void
        {
            var etichetta:String='© FlepStudio.org';
            var cm:ContextMenu=new ContextMenu();
            var item:ContextMenuItem=new ContextMenuItem(etichetta);
            cm.hideBuiltInItems();
            cm.customItems.push(item);
            item.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,itemHandler1);
            this.contextMenu=cm;
        }
        private function itemHandler1(event:ContextMenuEvent):void
        {
            var url:String='http://www.flepstudio.org/';
            var request:URLRequest=new URLRequest(url);
            navigateToURL(request,'_parent');
        }
    }
}
__________________

 


I recommend: Essential Actionscript 3.0

- I do not reply technicians pvt messages. Open a thread !
- Non rispondo ai messaggi privati con domande tecniche. Apri una discussione sul forum !
Reply With Quote