Solución a problema con hitTest
Bueno, despues de una larga y desesperante investigación llegue a los siguientes resultados, los cuales publico por si alguien cae en el mismo problema y busca una solución rapida a su problema. (ni tan rapida, me tomo 6 dias encontrarla)
Definitivamente algo que no falla a la hora de programar en Macromedia Flash es la prueba y error y estar contantemente revisando que hace cada instrucción con la sección de ayuda que viene incluida en Flash. (F1 para mas referencia)
Como mencione en el post anterior tenia un problema con hitTest () el cual no podia controlar por el consumo de recursos.
Pues bien, lo primero que hice fue buscar por otro lado, otra forma de hacer lo que queria. Investigando en 5 foros y posteando en 3 de ellos, llego la solución y nuevas ideas. Principalmente de FlashLA.
Lo primero que hice fue meter mi scroll de movieclip y el movieclip de texto en un nuevo movieclip. A este movieclip lo meti en otro nuevo movieclip y le puse el nombre de instancia contenido. Todo esto lo aloje en una layer llamado contenidos.
Despues en un nuevo layer llamado actions coloque el siguiente codigo:
contenido._visible = 0;
contenido._alpha = 0;
this.onMouseMove = function() {
if((this._xmouse>=contenido._x)&&(this._xmouse<=contenido._x+contenido._width)
&&(this._ymouse>=contenido._y)&&(this._ymouse<=contenido._y+contenido._height)){
contenido._visible=1
}else{
contenido._visible = 0
contenido._alpha = 0
}
};
contenido.onEnterFrame = function(){
if (contenido._alpha<90) {
contenido._alpha+= 5;
}
}
Lo que hace este codigo es hacer invisible el movieclip contenido, y cuando pasas el cursor sobre el lo hace visible pero tambien le va subiendo el alpha de 0 a 90.
Debo decir que me ha funcionado de maravilla. En el transcurso de estos dias con Flash he aprendido bastante, quisas valga la pena hacer alguna aplicacion web con flash y actionscript.
Publicado el 15 de Agosto del 2006 en flash actionscript
12 Comentarios
Felicidades, Stan! Cuándo nos muestras el Flash como quedó? :)
Comentario publicado el Martes, 15 de Agosto del 2006 a las 07:29 pm
En cuanto lo tenga listo lo mostrare.
Comentario publicado el Miércoles, 16 de Agosto del 2006 a las 08:06 pm
kevin
stan me podrias mandar todos los videos de alizee que tengas y yo te congratulare
Comentario publicado el Martes, 22 de Agosto del 2006 a las 06:05 pm
alexander: pues ya estuvieras descargando google earth, identificando tu pais, tu estado, tu municipio y por ultimo una zona que reconozcas y de ahi partir a encontrar el camino a casa.
Kevin: no tengo idea de que videos de alizee hablas. :S
Comentario publicado el Miércoles, 23 de Agosto del 2006 a las 11:31 am
Mmmm igual no entendi bien pero lo que yo haria con el movie clip asi de entrada se me ocurre un boton invisible dentro del movie clip que contiene tu area de scroll asi nomas pongo la accion que quiereo dentro del onMouseOver lo segundo poner la propiedad para ese boton useHandCursor = false; para que no salga la manita (si no la quieres claro) y creo que seria mas o menos todo lo que a mi se me ocurre por el momento.
P.D. y respecto al codigo que tienes yo meteria la accion contenido.onEnterFrame dentro del onMouseMove en la parte donde se cumple la condicion de estar sobre el clip (asi solo ejecutarias el onEnterFrame cuando se cumpla la condicion de estar sobre el) y una vez que alcance el maximo alpha borraria ese onEnterFrame con "delete contenido.onEnterFrame" para que no me lo ejecute más hasta que se vuelve a repetir la accion de salir y volver a entrar al clip
Algo así
contenido._visible = 0;
contenido._alpha = 0;
this.onMouseMove = function() {
if ((this._xmouse>=contenido._x) && (this._xmouse=contenido._y) && (this._ymouse
Comentario publicado el Jueves, 24 de Agosto del 2006 a las 12:51 pm
no se puso todo ahi va de nuevo....
contenido._visible = 0;
contenido._alpha = 0;
this.onMouseMove = function() {
if ((this._xmouse>=contenido._x) && (this._xmouse=contenido._y) && (this._ymouse
Comentario publicado el Jueves, 24 de Agosto del 2006 a las 12:52 pm
Gerardo, interesante punto de vista, creeme que intente hacerlo de muchas maneras antes de hacerlo publico aqui. dure mas de una semana intentando resolver ese problema. Probare con lo que mencionas haber que sale :D
Comentario publicado el Lunes, 28 de Agosto del 2006 a las 10:22 am
Saludos stan,
Intente poner el codigo que hice modificando el tuyo, pero por alguna razon no lo despliega todo.
Comentario publicado el Martes, 29 de Agosto del 2006 a las 10:55 pm
Gerardo, lo revisare hoy por la tarde, ya que yo lo desarrolle en flash 8 y no en flash mx 2004.
Hay diferencias en el codigo.
Comentario publicado el Miércoles, 30 de Agosto del 2006 a las 10:18 am
Si mal no recuerdo no, de hecho el que te mande lo probe en flash 8 y no marco ningun error, por lo que asumo que esta correcto... espero te funcione
Comentario publicado el Domingo, 3 de Septiembre del 2006 a las 12:22 am
Hi, stanmx.com Flash Developers
Please help me this ;
I am downloading
http://www.braingiants.com/
contentslider.fla but
not chaging this "contentslider"
_xmouse and _ymouse not work flash why?
I want to; _xmouse and _ymouse scrolling "contentClip"
file fla or code.
Thank you very much.
//This is a original code:
Stage.scaleMode = "noScale";
var myListener = new Object();
myListener.onResize = function() {
updateLocations();
};
Stage.addListener(myListener);
updateLocations = function () {
initialWidth = Stage.width;
initialHeight = Stage.height;//75;
currentWidth = Stage.width;
currentHeight = Stage.height;
contentWidth = pHorizontal.pictureBig._width;
pHorizontal._y = 0;
if (pHorizontal._widthMath.floor((initialWidth-currentWidth)/2) && this._xmousepHorizontal._y && this._ymousecurrentWidth) {
positionContent();
}
// end if
}
// end if
};
positionContent = function () {
mousePercent = (this._xmouse+(currentWidth-initialWidth)/2)/currentWidth;
availMovement = pHorizontal._width-currentWidth+buffer*2;
newX = Math.floor(-mousePercent*availMovement)-(currentWidth-initialWidth)/2+buffer*2/2;
};
if (pHorizontal._width>currentWidth) {
newX = Math.floor((initialWidth-currentWidth)/2)+buffer;
} else {
newX = Math.floor(initialWidth/2-pHorizontal._width/2);
}
// end else if
holder = pHorizontal._x;
easeContent = function () {
if (newX != pHorizontal._x) {
destx = newX;
posx = holder;
velx = (destx-posx)/4;
holder = holder+velx;
pHorizontal._x = Math.round(holder);
}
// end if
};
pHorizontal.onEnterFrame = function() {
easeContent();
};
updateLocations();
stop();
Comentario publicado el Miércoles, 27 de Junio del 2007 a las 07:30 pm
@Kariz: Do you check this http://www.stanmx.com/263.html
Send me the .fla in a email, to checking in action and see if i can help you or not.
Comentario publicado el Jueves, 28 de Junio del 2007 a las 11:07 am