Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    680

    AS3: Aiuto richiamo classe

    Ciao a tutti,
    sto iniziando a vedere flash e l'uso delle classi, vorrei avere un grande chiarimento.
    Io sto richiamando un file .as (sotto riportato) che mi consente di importare nel filmato un campo di testo ridimensionabile.
    Il richiamo lo faccio mettendo il nome della classe dentro le proprietà del filmato principale, se io invece volessi richiamare o meglio "avviare" la classe tramite pulsante, come dovrei fare?


    codice:
    package {
     
    	import flash.display.Sprite;
    	import flash.display.MovieClip;
    	//for text format
    	import flash.text.TextField;
    	import flash.text.TextFormat;
    	import flash.text.TextFormatAlign;
    	import flash.text.TextFieldType;	
    	import flash.text.AntiAliasType;
    	
    	import flash.events.MouseEvent;
    	import flash.events.FocusEvent;
    	import flash.utils.Timer;
    	import flash.events.TimerEvent;
     
    	public class ResizableTextField extends MovieClip {
     
    		private var textCustomField:TextField;
     
    		//handles
    		private var square1:Sprite;
    		private var square2:Sprite;
    		private var square3:Sprite;
    		private var square4:Sprite;
    		private var square5:Sprite;
    		private var square6:Sprite;
    		private var square7:Sprite;
    		private var square8:Sprite;
     
    		//dragging
    		private var origX:int;
    		private var origY:int;
    		private var dragTimer:Timer = new Timer(10,10000);
    		private var handleHolder:Object;
    		private var txtClicked:Boolean = false;
    		
    		//text format
    		public var myFont = new Font1();
    		private var myFormat:TextFormat = new TextFormat();
     
    		// Initialization:
    		public function CreateTextField()
    		{
    			
    		}
    		public function ResizableTextField()
    		{
    			
    			//text format set
    			myFormat.size = 15;
    			myFormat.font = myFont.fontName;
    
    			textCustomField = new TextField();
    			textCustomField.defaultTextFormat = myFormat;
    			
    			textCustomField.embedFonts = true;
    			textCustomField.antiAliasType = AntiAliasType.ADVANCED;
    			textCustomField.type = TextFieldType.INPUT;
    			textCustomField.multiline = true;
    			textCustomField.wordWrap = true;
    			textCustomField.width=200;
    			textCustomField.height=100;
    			textCustomField.x=50;
    			textCustomField.y=50;
    			textCustomField.text="Type here";
    			textCustomField.border=true;
    			textCustomField.borderColor=0x32B5FE;
    			createHandles();
    			this.addChild(textCustomField);
    			textCustomField.addEventListener(MouseEvent.CLICK,txtClick) 
    		}
    		
    		//remove type here text
    		private function txtClick(event:MouseEvent):void
    		{
    			if(txtClicked == false)
    			{
    			event.target.text = "";
    			txtClicked = true;
    			}
    		}
    
    		
    		//create 4 draggable handles
    		private function createHandles():void
    		{
     
    			square1 = new Sprite();
    			square1.graphics.lineStyle(1,0x32B5FE);
    			square1.graphics.beginFill(0xFFFFFF);
    			square1.graphics.drawRect(0,0,4,4);
    			square1.graphics.endFill();
     
    			square2 = new Sprite();
    			square2.graphics.lineStyle(1,0x32B5FE);
    			square2.graphics.beginFill(0xFFFFFF);
    			square2.graphics.drawRect(0,0,4,4);
    			square2.graphics.endFill();
     
    			square3 = new Sprite();
    			square3.graphics.lineStyle(1,0x32B5FE);
    			square3.graphics.beginFill(0xFFFFFF);
    			square3.graphics.drawRect(0,0,4,4);
    			square3.graphics.endFill();
     
    			square4 = new Sprite();
    			square4.graphics.lineStyle(1,0x32B5FE);
    			square4.graphics.beginFill(0xFFFFFF);
    			square4.graphics.drawRect(0,0,4,4);
    			square4.graphics.endFill();
    			
    			square5 = new Sprite();
    			square5.graphics.lineStyle(1,0x32B5FE);
    			square5.graphics.beginFill(0xFFFFFF);
    			square5.graphics.drawRect(0,0,4,4);
    			square5.graphics.endFill();
     
    			square6 = new Sprite();
    			square6.graphics.lineStyle(1,0x32B5FE);
    			square6.graphics.beginFill(0xFFFFFF);
    			square6.graphics.drawRect(0,0,4,4);
    			square6.graphics.endFill();
     
    			square7 = new Sprite();
    			square7.graphics.lineStyle(1,0x32B5FE);
    			square7.graphics.beginFill(0xFFFFFF);
    			square7.graphics.drawRect(0,0,4,4);
    			square7.graphics.endFill();
     
    			square8 = new Sprite();
    			square8.graphics.lineStyle(1,0x32B5FE);
    			square8.graphics.beginFill(0xFFFFFF);
    			square8.graphics.drawRect(0,0,4,4);
    			square8.graphics.endFill();
     
    			updateHandlePositions();
     
    			this.addChild(square1);
    			square1.buttonMode=true;
    			this.addEventListener(FocusEvent.FOCUS_OUT,hideHandles);
    			square1.addEventListener(MouseEvent.MOUSE_DOWN,startHandleDrag);
     
    			this.addChild(square2);
    			square2.buttonMode=true;
    			this.addEventListener(FocusEvent.FOCUS_OUT,hideHandles);
    			square2.addEventListener(MouseEvent.MOUSE_DOWN,startHandleDrag);
     
    			this.addChild(square3);
    			square3.buttonMode=true;
    			this.addEventListener(FocusEvent.FOCUS_OUT,hideHandles);
    			square3.addEventListener(MouseEvent.MOUSE_DOWN,startHandleDrag);
     
    			this.addChild(square4);
    			square4.buttonMode=true;
    			this.addEventListener(FocusEvent.FOCUS_OUT,hideHandles);
    			square4.addEventListener(MouseEvent.MOUSE_DOWN,startHandleDrag);
    			
    			this.addChild(square5);
    			square5.buttonMode=true;
    			this.addEventListener(FocusEvent.FOCUS_OUT,hideHandles);
    			square5.addEventListener(MouseEvent.MOUSE_DOWN,startHandleDrag);
    			
    			this.addChild(square6);
    			square6.buttonMode=true;
    			this.addEventListener(FocusEvent.FOCUS_OUT,hideHandles);
    			square6.addEventListener(MouseEvent.MOUSE_DOWN,startHandleDrag);
    			
    			this.addChild(square7);
    			square7.buttonMode=true;
    			this.addEventListener(FocusEvent.FOCUS_OUT,hideHandles);
    			square7.addEventListener(MouseEvent.MOUSE_DOWN,startHandleDrag);
    			
    			this.addChild(square8);
    			square8.buttonMode=true;
    			this.addEventListener(FocusEvent.FOCUS_OUT,hideHandles);
    			square8.addEventListener(MouseEvent.MOUSE_DOWN,startHandleDrag);
    		}
     
    		private function hideHandles(e:FocusEvent):void
    		{
    			square1.alpha=0;
    			square2.alpha=0;
    			square3.alpha=0;
    			square4.alpha=0;
    			square5.alpha=0;
    			square6.alpha=0;
    			square7.alpha=0;
    			square8.alpha=0;
    			this.textCustomField.border=false;
    			this.addEventListener(MouseEvent.MOUSE_OVER,showHandles);
    		}
     
    		private function showHandles(e:MouseEvent):void
    		{
    			square1.alpha=1;
    			square2.alpha=1;
    			square3.alpha=1;
    			square4.alpha=1;
    			square5.alpha=1;
    			square6.alpha=1;
    			square7.alpha=1;
    			square8.alpha=1;
    			this.textCustomField.border=true;
    			textCustomField.borderColor=0x32B5FE;
    		}
     
    		private function startHandleDrag(e:MouseEvent):void
    		{
    			handleHolder=e.target;
    			origX=mouseX;
    			origY=mouseY;
    			dragTimer.addEventListener(TimerEvent.TIMER, resizeField);
                dragTimer.start();
    		}
     
    		private function stopHandleDrag(e:MouseEvent):void
    		{
    			removeEventListener(MouseEvent.MOUSE_UP,stopHandleDrag);
    			dragTimer.stop();
    			dragTimer.reset();
    		}
    		// resize text field depending on which direction dragging
    		private function resizeField(e:TimerEvent):void
    		{
    			addEventListener(MouseEvent.MOUSE_UP,stopHandleDrag);
    			var updatedX:int = mouseX-origX;
    			var updatedY:int = mouseY-origY;
    			if(handleHolder===square1)
    			{
    				this.textCustomField.width-=updatedX;
    				this.textCustomField.height-=updatedY;
    				this.textCustomField.x+=updatedX;
    				this.textCustomField.y+=updatedY;
    			}
    			else if(handleHolder===square2)
    			{
    				this.textCustomField.width+=updatedX;
    				this.textCustomField.height-=updatedY;
    				this.textCustomField.y+=updatedY;
    			}
    			else if(handleHolder===square3)
    			{
    				this.textCustomField.width-=updatedX;
    				this.textCustomField.height+=updatedY;
    				this.textCustomField.x+=updatedX;
    			}
    			else if(handleHolder===square4)
    			{
    				this.textCustomField.width+=updatedX;
    				this.textCustomField.height+=updatedY;
    			}
    			else if(handleHolder===square5)
    			{
    				this.textCustomField.height-=updatedY;
    				this.textCustomField.y+=updatedY;
    			}
    			else if(handleHolder===square6)
    			{
    				this.textCustomField.width+=updatedX;
    				//this.textCustomField.y+=updatedY;
    			}
    			else if(handleHolder===square7)
    			{
    				this.textCustomField.height+=updatedY;
    			}
    			else if(handleHolder===square8)
    			{
    				this.textCustomField.width-=updatedX;
    				this.textCustomField.x+=updatedX;				
    			}
     
    			origX=mouseX;
    			origY=mouseY;
    			updateHandlePositions();
    			e.updateAfterEvent();
    		}
    		//adjust handles to the new size/position
    		private function updateHandlePositions():void
    		{
    			square1.x=textCustomField.x-square1.width+3;
    			square1.y=textCustomField.y-square1.height+3;
    			square2.x=textCustomField.x+textCustomField.width-2;
    			square2.y=textCustomField.y-square2.width+3;
    			square3.x=textCustomField.x-square3.height+3;
    			square3.y=textCustomField.height+textCustomField.y-2;
    			square4.x=textCustomField.x+textCustomField.width-2;
    			square4.y=textCustomField.height+textCustomField.y-2;
    			
    			//
    			square5.x=textCustomField.x-square1.width+(textCustomField.width/2);
    			square5.y=textCustomField.y-square1.height+3;
    			square6.x=textCustomField.x-square1.width+textCustomField.width+3;
    			square6.y=textCustomField.y-square1.height+(textCustomField.height/2);
    			square7.x=textCustomField.x-square1.width+(textCustomField.width/2)+3;
    			square7.y=textCustomField.y-square1.height+textCustomField.height+3;
    			square8.x=textCustomField.x-square1.width+3;
    			square8.y=textCustomField.y-square1.height+(textCustomField.height/2);
    			
    		}
    	}
     
    }

  2. #2
    non per dire eh

    ma dovresti postare la classe principale...questa serve a poco per aiutarti
    Photogallery Flash Gratis - http://www.flashfiles.biz -
    Template in Flash con pannello di Amministrazione e deeplinking Guarda il template qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    680
    Questa è l'unica classe che ho.
    Richiamo la classe da scena1 ma vorrei richiamarla tramite un pulsante.
    La classe sta dentro un file .as

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    680
    ??

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    680
    Qualcuno sa darmi una mano?

    Se uso questo non funziona:
    codice:
    miopulsate.addEventListener(MouseEvent.CLICK, ResizableTextField);
    Non capisco come risolvere.

  6. #6
    Utente di HTML.it L'avatar di Sleter
    Registrato dal
    Aug 2005
    Messaggi
    465
    Il richiamo lo faccio mettendo il nome della classe dentro le proprietà del filmato principale, se io invece volessi richiamare o meglio "avviare" la classe tramite pulsante, come dovrei fare?
    Codice PHP:
    pulsante.addEventListener(MouseEvent.CLICKaggiungiClasse);

    function 
    aggiungiClasse(evento:MouseEvent):void
    {
        var 
    miaClasse:ResizableTextField = new ResizableTextField;
        
    addChild(miaClasse);




  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    680
    Perfetto grazie mille!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.