Comunidad de diseño web y desarrollo en internet online

Linea Recta

Citar            
MensajeEscrito el 05 Sep 2009 09:43 pm
Buenas.
Estoy usando las librerias de AS# de dibujo, con lo cual estoy haciendo una una linea, que crece dinamicamente a medida que aunmento o disminuyo el valor de mi NumericStepper.

Tengo en el escenario un componente NumericStepper con nombre de instancia: amp
Y luego de código AS3 tengo:

Código ActionScript :

import flash.events.Event;
var amplitud:Number=50;

amp.addEventListener(Event.CHANGE, cambiaramplitud);
function cambiaramplitud(event:Event) :void {
amplitud=event.target.value;
trace("Amplitud: "+amplitud);

//color
this.graphics.lineStyle(5,0xBAB4F5);
this.graphics.moveTo(100, 200);
this.graphics.lineTo(100,amplitud);
};

EL problema es que esta, al hacer click se va al infinito, y no crece ni disminuye su tamaño.
Desde ya muchas gracias.
Saludos

Por bubudrc

Claber

591 de clabLevel

1 tutorial

 

mayo 2006

firefox
Citar            
MensajeEscrito el 07 Sep 2009 08:30 am
Que tal, veo varios problemas:

No puedes dibujar la linea dentro del evento ya que así estas agregando lineas lo que no te permitiría luego hacerlas pequeñas
Creo que no se puede manipular las formas directamente pero en el caso de lineas se puede modificar el modo de escalar y puede funcionar de esta manera, te dejo el código que hice, es sencillo, de algo te servira.

Código ActionScript :

package {
   import fl.controls.NumericStepper;
   
   import flash.display.LineScaleMode;
   import flash.display.MovieClip;
   import flash.display.Sprite;
   import flash.events.Event;

   public class Test extends Sprite
   {
      private var amp:NumericStepper = new NumericStepper();
      private var amplitud:Number = 10;
      private var linea:MovieClip = new MovieClip();
      
      public function Test()
      {
         stage.scaleMode = "noScale";
         stage.addChild(amp);
         stage.addChild(linea);
         
         amp.maximum = 500;
         amp.stepSize = 5;
         amp.value = amplitud;
         amp.addEventListener(Event.CHANGE, cambiaramplitud);
         
         linea.graphics.lineStyle(5,0xBAB4F5,1,true,LineScaleMode.VERTICAL); 
         linea.graphics.lineTo(0,amplitud);
      }
      
      private function cambiaramplitud(event:Event) :void { 
         trace("Amplitud: " + amplitud);
         
         amplitud = amp.value;  
         linea.height = amplitud;
      };
   }
}

Por GersonM_17

330 de clabLevel



Genero:Masculino   Héroes

Flash AS3 / PHP Developer

chrome
Citar            
MensajeEscrito el 09 Sep 2009 03:49 pm
GersonM_17, gracias por tu ayuda. el final era mucho mas simple, me quedo asi la cosa:

Código ActionScript :

amp.addEventListener(Event.CHANGE, cambiaramplitud);
function cambiaramplitud(event:Event) :void {
amplitud=event.target.value*10;
this.graphics.clear();
//Dibujar EJE X
ejex(nmax);
//Dibujar EJE Y
ejey(amplitud);

/*donde las funciones son*/
/*TAMAÑO EJE X------------------------------------------------------------------------*/
var linea_punteada:Number;
function ejex(tamx:Number):void
{
   5*tamx;
//color
   this.graphics.lineStyle(5,0xBAB4F5);
   this.graphics.moveTo(posinix, posiniy);
   this.graphics.lineTo(posinix+5*tamx,posiniy);
   //PORCENTAJE del 63%/ Linea Puntuada
   linea_punteada=round((-tamx*Math.log(0.37)),2);
   porc63.text=((amplitud*0.63)/10).toString();
   porc63.x=posinix-35;
   porc63.y=(posiniy-amplitud*0.63)-5
     this.graphics.lineStyle(5,c);
     this.graphics.moveTo(posinix, posiniy-amplitud*0.63);
           this.graphics.lineTo(posinix+linea_punteada,posiniy-amplitud*0.63);
   
}
/*------------------------------------------------------------------------------------*/
/*DIBUJAR EJE Y*/
function ejey(tmax:Number):void
{
   this.graphics.lineStyle(5,0xBAB4F5);
   this.graphics.moveTo(posinix, posiniy);
   this.graphics.lineTo(posinix,posiniy-tmax);
}
/*------------------------------------------------------------------------------------*/

Saludos.
Gracias por tu ayuda

Por bubudrc

Claber

591 de clabLevel

1 tutorial

 

mayo 2006

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.