- Home
- Categorie
- Digital Marketing
- Grafica, Visual Design & UX
- Maschere As3
-
Maschere As3
Buongiorno,
sto impazzendo....Carico su MovieClip container tot. immagini ognuna con una maschera al mouse over aggiungo un tween alla maschera per larghezza ed altezza uguale all'immagine.
Beh, l'unica maschera che fà ciò che deve è quella nella posizione 0,0 mentre le altew oltre ad ingrandirsi si spostano sull'asse X di tot pixel.
PErchè ??
Io posso anche postare il codice ma il fatto è che carico tutto da xml...cmq ecco il pezzo incriminato:
function Apri(e:MouseEvent):void{var id:int = parseInt(str_replace("i","",e.target.name));
var tt:Number = (this.stg.numChildren - 1 ) ;
this.stg.setChildIndex(this.stg.getChildByName("m"+id) , tt);/*POS [ID][4] larghezza immagine NON VOLEVO PERNACCHIARE
Tweener.addTween(e.target.mask,{width:pos[id][4],time:0.2,transition:"easeInQuart"});
/*POS [ID][4] altezza immagine NON VOLEVO PERNACCHIARE
Tweener.addTween(e.target.mask,{height:pos[id][5],time:0.2,transition:"easeInQuart"});}
Perchè secondo voi mi funziona benissimo per l'unica immagina posizionata su 0,0 mentre dalla seconda in poi oltre ad allargare ed allungare la maschera mi sposta la x della maschera?
Dove sbaglio? Che controllo devo inserire ?
Cioè non la tocco neanche la x perchè si sposta?
-
Inserite un immagine chiamata a.jpg sotto C:/ e fate partire il filmato...
vedrete che la maschera fa quello che vuole invece di allargarsi della dimensione dell'immagine
Dove sbaglio ?
ecco il codice:
var mc:Loader = new Loader();
var box:Sprite=new Sprite();
box.graphics.lineStyle();
box.graphics.beginFill(0x000000);
box.graphics.drawRect(100,100,80,100);
box.graphics.endFill();
box.cacheAsBitmap = true;
mc.load(new URLRequest("c:\a.jpg"));
mc.addEventListener(MouseEvent.MOUSE_OVER, Apri);
mc.x = 50 ;
mc.y = 50;
mc.mask = box;
addChild(mc);
function Apri(e:MouseEvent):void{e.target.removeEventListener(MouseEvent.MOUSE_OVER, Apri); e.target.addEventListener(MouseEvent.MOUSE_OUT, Chiudi); e.target.alpha = 1;
Tweener.addTween(e.target.mask,{width:e.target.width,time:0.2,transition:"easeInQuart"});
Tweener.addTween(e.target.mask,{height:e.target.height,time:0.2,transition:"easeInQuart"});}
function Chiudi(e:MouseEvent):void{
e.target.removeEventListener(MouseEvent.MOUSE_OUT, Chiudi);
e.target.addEventListener(MouseEvent.MOUSE_OVER, Apri);e.target.alpha = 1;
Tweener.addTween(e.target.mask,{width:100,time:0.2,transition:"easeInQuart"});
Tweener.addTween(e.target.mask,{height:100,time:0.2,transition:"easeInQuart"});}
-
Inserite un immagine chiamata a.jpg sotto C:/ e fate partire il filmato...
vedrete che la maschera fa quello che vuole invece di allargarsi della dimensione dell'immagine
Dove sbaglio ?
ecco il codice:
var mc:Loader = new Loader();
var box:Sprite=new Sprite();
box.graphics.lineStyle();
box.graphics.beginFill(0x000000);
box.graphics.drawRect(100,100,80,100);
box.graphics.endFill();
box.cacheAsBitmap = true;
mc.load(new URLRequest("c:\a.jpg"));
mc.addEventListener(MouseEvent.MOUSE_OVER, Apri);
mc.x = 50 ;
mc.y = 50;
mc.mask = box;
addChild(mc);
function Apri(e:MouseEvent):void{e.target.removeEventListener(MouseEvent.MOUSE_OVER, Apri); e.target.addEventListener(MouseEvent.MOUSE_OUT, Chiudi); e.target.alpha = 1;
Tweener.addTween(e.target.mask,{width:e.target.width,time:0.2,transition:"easeInQuart"});
Tweener.addTween(e.target.mask,{height:e.target.height,time:0.2,transition:"easeInQuart"});}
function Chiudi(e:MouseEvent):void{
e.target.removeEventListener(MouseEvent.MOUSE_OUT, Chiudi);
e.target.addEventListener(MouseEvent.MOUSE_OVER, Apri);e.target.alpha = 1;
Tweener.addTween(e.target.mask,{width:100,time:0.2,transition:"easeInQuart"});
Tweener.addTween(e.target.mask,{height:100,time:0.2,transition:"easeInQuart"});}