Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    225

    [FX2,AS3] Bindings e interfacce

    Salve a tutti, spero di non essere fuori luogo, proponendo un quesito riguardante Flex e AS3.
    Nello specifico, ho qualche problema a capire il meccanismo del binding:
    ereditando da un oggetto che ha come progenitore EventDispatcher no problem.
    Ereditando da un oggetto che non ce l'ha (come p.es. RemoteObject) ma che implementa l'interfaccia IEventDispatcher posso comunque utilizzare i metodi dell'interfaccia (poiche' sono implementati in AbstractService), tuttavia il binding non funziona. P.es.:

    codice:
    package classes
    {
    	import flash.utils.Timer;
    	import flash.events.Event;
    	import flash.events.EventDispatcher;
    	import mx.rpc.remoting.RemoteObject;
    		
    //	public class FEvTest extends EventDispatcher
    	public class FEvTest extends RemoteObject
    	{
    		public function FEvTest()
    		{
    			super();
    		}
    		[Bindable("valTestChanged")]
    		public function get valTest(): Number
    		{
    			return Math.random();
    		}
    		
    		public function test(): void
    		{
    			dispatchEvent( new Event("valTestChanged"));
    		}
    		
    	}
    }
    La variabile valTest non scatena il refresh da parte di un controllo che eventualmente la utilizzasse, mentre facendo discendere il tutto da EventDispatcher (riga commentata) funziona.
    E' cosi' che deve essere (ma allora a che servono le interfacce?) oppure e' un bug?
    Grazie a tutti
    Z0rn

  2. #2
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Guarda che non è il dispatchEvent che non funziona (quello funziona benissimo), e a parte questo il fatto che un oggetto implementi l'interfaccia IEventDispatcher non significa assolutamente che sia in grado di eseguire il dispatch di un evento (significa solo che implementa , tra gli altri, un metodo chiamato dispatchEvent, che potrebbe benissimo essere:

    codice:
    public function dispatchEvent( event:Event ):void
    {
    	// non faccio niente
    }
    Quello che non funziona è il binding, probabilmente a causa del fatto che si tratta di una classe che discende dalla classe Proxy, che implementa un sistema particolare per il recupero e il settaggio delle proprietà.

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.