Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di alexite
    Registrato dal
    Apr 2007
    Messaggi
    130

    problema col tutorial di FLAR Toolkit

    ciao a tutti ..
    il mio non è un problema di flash ma di tutorial:

    cercavo informazioni su FLAR Toolkit ed ho trovato questo
    http://flash.html.it/articoli/leggi/...it-in-pratica/

    solo che manca il collegamento al file swc!!!

    qualcuno per caso può passarmi il file? ho provato a cercarlo per il web ma non sono riuscito a trovarlo da nessuna parte!!

    grazie

    Ciao
    ciaoooooooo by Alex!!!!!!

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Forse conviene che scrivi direttamente alla redazione di html.it, se non sbaglio la mail è redazione[at]html[dot]it

    Lascio comunque aperto nel caso qualcuno avesse a disposizione il file che cerchi

  3. #3
    Utente di HTML.it L'avatar di alexite
    Registrato dal
    Apr 2007
    Messaggi
    130
    ah ok grazie
    se è possibile lasciarlo aperto sarebbe meglio, anche perchè ho riscontrato dei problemi seguendo questo tutorial e vorrei sapere se per caso c'è qualcuno che l'ha provato a seguire
    grazie comunque ..
    ciaoooooooo by Alex!!!!!!

  4. #4
    Utente di HTML.it L'avatar di alexite
    Registrato dal
    Apr 2007
    Messaggi
    130
    TROVATO IL FILE ... in giro per la rete ...
    però ho comunque un problema!!!!!!

    ad esempio ... questo è il codice:
    codice:
    package
    {
    	import flash.display.BitmapData;
    	import flash.display.Sprite;
    	import flash.events.Event;
    	import flash.media.Camera;
    	import flash.media.Video;
    	import flash.utils.ByteArray;
    	
    	import org.libspark.flartoolkit.core.FLARCode;
    	import org.libspark.flartoolkit.core.param.FLARParam;
    	import org.libspark.flartoolkit.core.raster.rgb.FLARRgbRaster_BitmapData;
    	import org.libspark.flartoolkit.core.transmat.FLARTransMatResult;
    	import org.libspark.flartoolkit.detector.FLARSingleMarkerDetector;
    	import org.libspark.flartoolkit.pv3d.FLARBaseNode;
    	import org.libspark.flartoolkit.pv3d.FLARCamera3D;
    	import org.papervision3d.lights.PointLight3D;
    	import org.papervision3d.materials.shadematerials.FlatShadeMaterial;
    	import org.papervision3d.materials.utils.MaterialsList;
    	import org.papervision3d.objects.primitives.Cube;
    	import org.papervision3d.render.BasicRenderEngine;
    	import org.papervision3d.scenes.Scene3D;
    	import org.papervision3d.view.Viewport3D;
    	
    	
    	public class esempio_flar extends Sprite
    	{
    		// Importa il pattern
    		[Embed(source="patternHTML.pat", mimeType="application/octet-stream")]
    		private var pattern:Class;
    		
    		// Importa i parametri
    		[Embed(source="camera_para.dat", mimeType="application/octet-stream")]
    		private var params:Class;
    		
    		// Variabili per la creazione della visualizzazione della webcam
    		private var vid:Video;
    		private var cam:Camera;
    		private var bmd:BitmapData;
    		
    		// Variabili relative a papervision e FLAR
    		private var fparams:FLARParam;
    		private var mpattern:FLARCode;
    		private var raster:FLARRgbRaster_BitmapData;
    		private var detector:FLARSingleMarkerDetector;
    		private var scene:Scene3D;
    		private var camera:FLARCamera3D;
    		private var container:FLARBaseNode;
    		private var vp:Viewport3D;
    		private var bre:BasicRenderEngine;
    		private var trans:FLARTransMatResult;
    		
    		public function esempio_flar() {   }
    	}
    	
    	public function Esempio_flar()
    	{
    		setupFLARToolkit();
    		setupWebcam();
    		setupPattern();
    		setupPapervision();
    		addEventListener(Event.ENTER_FRAME, renderizza);
    	}
    	
    	private function setupFLARToolkit():void
    	{
    		fparams = new FLARParam(); // creiamo un nuovo oggetto FLARParam
    		fparams.loadARParam(new params() as ByteArray); // carichiamo i parametri della webcam come ByteArray
    		mpattern = new FLARCode(16, 16); // creiamo un nuovo oggetto FLARCode
    		mpattern.loadARPatt(new pattern()); // carichiamo il pattern
    	}
    	
    	private function setupWebcam():void
    	{
    		vid = new Video(640, 480);
    		cam = Camera.getCamera();
    		cam.setMode(640, 480, 30);
    		vid.attachCamera(cam);
    		addChild(vid);
    	}
    	
    	private function setupPattern():void
    	{
    		bmd = new BitmapData(640, 480); // creiamo un oggetto BitmapData con le stesse dimensioni del flusso della webcam (640x480)
    		bmd.draw(vid); // disegnamo nell'oggetto bmd l'attuale frame del flusso video
    		raster = new FLARRgbRaster_BitmapData(bmd); // creiamo un oggetto FLARRgbRaster_BitmapData passandogli il fotogramma catturato
    		detector = new FLARSingleMarkerDetector(fparams, mpattern, 80); // creiamo un nuovo detector passandogli i parametri della webcam e il pattern da rilevare e la larghezza del marker (80 mm)
    	}
    	
    	private function setupPapervision():void
    	{
    		scene = new Scene3D(); // creiamo un anuova scena di Papervision
    		camera = new FLARCamera3D(fparams); // creiamo una nuova camera basata su FLAR e sui parametri caricati dal file .dat
    		container = new FLARBaseNode(); // creiamo un nuovo FLARBaseNode
    		scene.addChild(container); // aggiungiamo l'oggetto FLARBaseNode alla scena di Papervision
    		
    		var pl:PointLight3D = new PointLight3D(); // creiamo una luce da usare in Papervision
    		// posizioniamo la luce
    		pl.x = 1000;  
    		pl.y = 1000;
    		pl.z = -1000;
    		
    		var ml:MaterialsList = new MaterialsList({all: new FlatShadeMaterial(pl)}); // creiamo un nuovo materiale che useremo per i cubi
    		
    		// creiamo i 3 cubi e li posizioniamo a diverse profondità
    		var cube1:Cube = new Cube(ml, 30, 30, 30);
    		var cube2:Cube = new Cube(ml, 30, 30, 30);
    		cube2.z = 50;
    		var cube3:Cube = new Cube(ml, 30, 30, 30);
    		cube3.z = 100;
    		
    		// aggiungiamo i cubi alla scena
    		container.addChild(cube1);
    		container.addChild(cube2);
    		container.addChild(cube3);
    		
    		// impostiamo il rendering della scena
    		bre = new BasicRenderEngine();
    		trans = new FLARTransMatResult();
    		
    		// creiamo la visuale
    		vp = new Viewport3D();
    		// aggiungiamo la scena completa allo stage
    		addChild(vp);
    	}
    	
    	private function renderizza(evt:Event):void
    	{
    		bmd.draw(vid); // disegniamo il frame nell'oggetto bmd 
    		
    		if(detector.detectMarkerLite(raster, 80) && detector.getConfidence() > 0.5) // se il marker viene rilevato
    		{
    			detector.getTransformMatrix(trans); // ricaviamo la transformMatrix dal detector
    			container.setTransformMatrix(trans); // impostiamo la transformMatrix sulla scena
    			bre.renderScene(scene, camera, vp); // renderizziamo la scena di Papervision
    		}
    	}
    	
    }
    }
    e l'ho confrontato con il file d'esempio!! E' tutto corretto ..

    mi da sempre 5 errori di questo tipo:
    1013: The private attribute may be used only on class property definitions.

    riferiti a questa parte del codice (tutte le voci che cominciano con "private function":


    codice:
    private function setupFLARToolkit():void
    	{
    		fparams = new FLARParam(); // creiamo un nuovo oggetto FLARParam
    		fparams.loadARParam(new params() as ByteArray); // carichiamo i parametri della webcam come ByteArray
    		mpattern = new FLARCode(16, 16); // creiamo un nuovo oggetto FLARCode
    		mpattern.loadARPatt(new pattern()); // carichiamo il pattern
    	}
    	
    	private function setupWebcam():void
    	{
    		vid = new Video(640, 480);
    		cam = Camera.getCamera();
    		cam.setMode(640, 480, 30);
    		vid.attachCamera(cam);
    		addChild(vid);
    	}
    	
    	private function setupPattern():void
    	{
    		bmd = new BitmapData(640, 480); // creiamo un oggetto BitmapData con le stesse dimensioni del flusso della webcam (640x480)
    		bmd.draw(vid); // disegnamo nell'oggetto bmd l'attuale frame del flusso video
    		raster = new FLARRgbRaster_BitmapData(bmd); // creiamo un oggetto FLARRgbRaster_BitmapData passandogli il fotogramma catturato
    		detector = new FLARSingleMarkerDetector(fparams, mpattern, 80); // creiamo un nuovo detector passandogli i parametri della webcam e il pattern da rilevare e la larghezza del marker (80 mm)
    	}
    	
    	private function setupPapervision():void
    	{
    		scene = new Scene3D(); // creiamo un anuova scena di Papervision
    		camera = new FLARCamera3D(fparams); // creiamo una nuova camera basata su FLAR e sui parametri caricati dal file .dat
    		container = new FLARBaseNode(); // creiamo un nuovo FLARBaseNode
    		scene.addChild(container); // aggiungiamo l'oggetto FLARBaseNode alla scena di Papervision
    		
    		var pl:PointLight3D = new PointLight3D(); // creiamo una luce da usare in Papervision
    		// posizioniamo la luce
    		pl.x = 1000;  
    		pl.y = 1000;
    		pl.z = -1000;
    		
    		var ml:MaterialsList = new MaterialsList({all: new FlatShadeMaterial(pl)}); // creiamo un nuovo materiale che useremo per i cubi
    		
    		// creiamo i 3 cubi e li posizioniamo a diverse profondità
    		var cube1:Cube = new Cube(ml, 30, 30, 30);
    		var cube2:Cube = new Cube(ml, 30, 30, 30);
    		cube2.z = 50;
    		var cube3:Cube = new Cube(ml, 30, 30, 30);
    		cube3.z = 100;
    		
    		// aggiungiamo i cubi alla scena
    		container.addChild(cube1);
    		container.addChild(cube2);
    		container.addChild(cube3);
    		
    		// impostiamo il rendering della scena
    		bre = new BasicRenderEngine();
    		trans = new FLARTransMatResult();
    		
    		// creiamo la visuale
    		vp = new Viewport3D();
    		// aggiungiamo la scena completa allo stage
    		addChild(vp);
    	}
    	
    	private function renderizza(evt:Event):void
    	{
    		bmd.draw(vid); // disegniamo il frame nell'oggetto bmd 
    		
    		if(detector.detectMarkerLite(raster, 80) && detector.getConfidence() > 0.5) // se il marker viene rilevato
    		{
    			detector.getTransformMatrix(trans); // ricaviamo la transformMatrix dal detector
    			container.setTransformMatrix(trans); // impostiamo la transformMatrix sulla scena
    			bre.renderScene(scene, camera, vp); // renderizziamo la scena di Papervision
    		}
    qualcuno mi sa dare una mano?
    ciaoooooooo by Alex!!!!!!

  5. #5
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Ho provato a scaricare l'esempio completo e compilarlo usando FlashDevelop al posto di Flash Builder, e anche se non ho usato il marker suggerito nell'esempio (ho usato un gratta e vinci usato ) , mi funziona tutto correttamente. Almeno mi pare, secondo quanto suggerisce l'articolo.

    Se non ricordo male l'SWC non è altro che una libreria compilata con all'interno le classi che la compongono, ma considerato che le classi sono già nell'esempio, probabilmente non hai bisogno dell'SWC per far funzionare quanto meno l'esempio.

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da alexite

    qualcuno mi sa dare una mano?
    Scusa ma il codice come lo esegui? Nell'esempio la classe Esempio_Flar.as è la document class.

    Dall'errore che descrivi sembra che tu inserisca quel codice direttamente dentro un file FLA.

  7. #7
    Utente di HTML.it L'avatar di alexite
    Registrato dal
    Apr 2007
    Messaggi
    130
    a parte che una volta la chiama Esempio_Flar e un'altra Esempio_flar ..
    comunque sto lavorando anche con il file dell'esempio aperto (quello che si scarica dal tutorial direttamente..) e te lo posto qui

    premetto che non ci capisco tantissimo di as3.0 eh?! sto seguendo tutorial apposta per questo
    comunque il codice del file d'esempio è:

    codice:
    package
    {
    	import flash.display.BitmapData;
    	import flash.display.Sprite;
    	import flash.events.Event;
    	import flash.media.Camera;
    	import flash.media.Video;
    	import flash.utils.ByteArray;
    	
    	import org.libspark.flartoolkit.core.FLARCode;
    	import org.libspark.flartoolkit.core.param.FLARParam;
    	import org.libspark.flartoolkit.core.raster.rgb.FLARRgbRaster_BitmapData;
    	import org.libspark.flartoolkit.core.transmat.FLARTransMatResult;
    	import org.libspark.flartoolkit.detector.FLARSingleMarkerDetector;
    	import org.libspark.flartoolkit.pv3d.FLARBaseNode;
    	import org.libspark.flartoolkit.pv3d.FLARCamera3D;
    	import org.papervision3d.lights.PointLight3D;
    	import org.papervision3d.materials.shadematerials.FlatShadeMaterial;
    	import org.papervision3d.materials.utils.MaterialsList;
    	import org.papervision3d.objects.primitives.Cube;
    	import org.papervision3d.render.BasicRenderEngine;
    	import org.papervision3d.scenes.Scene3D;
    	import org.papervision3d.view.Viewport3D;
    	
    	
    	public class Esempio_Flar extends Sprite
    	{
    		[Embed(source="patternHTML.pat", mimeType="application/octet-stream")]
    		private var pattern:Class;
    		
    		[Embed(source="camera_para.dat", mimeType="application/octet-stream")]
    		private var params:Class;
    		
    		// variabili per la creazione della visualizzazione della webcam
    		private var vid:Video;
    		private var cam:Camera;
    		private var bmd:BitmapData;
    
    		// variabili relative a papervision e FLAR
    		private var fparams:FLARParam;
    		private var mpattern:FLARCode;
    		private var raster:FLARRgbRaster_BitmapData;
    		private var detector:FLARSingleMarkerDetector;
    		private var scene:Scene3D;
    		private var camera:FLARCamera3D;
    		private var container:FLARBaseNode;
    		private var vp:Viewport3D;
    		private var bre:BasicRenderEngine;
    		private var trans:FLARTransMatResult;
    		
    		public function Esempio_Flar()
    		{
    			setupFLARToolkit();
    			setupWebcam();
    			setupPattern();
    			setupPapervision();
    			addEventListener(Event.ENTER_FRAME, renderizza);	
    		}
    		
    		private function setupFLARToolkit():void
    		{
    			fparams = new FLARParam(); // creiamo un nuovo oggetto FLARParam
    			fparams.loadARParam(new params() as ByteArray); // carichiamo i parametri della webcam come ByteArray
    			mpattern = new FLARCode(16, 16); // creiamo un nuovo oggetto FLARCode
    			mpattern.loadARPatt(new pattern()); // carichiamo il pattern
    		}
    		
    		private function setupWebcam():void
    		{
    			vid = new Video(640, 480);
    			cam = Camera.getCamera();
    			cam.setMode(640, 480, 30);
    			vid.attachCamera(cam);
    			addChild(vid);
    		}
    		
    		private function setupPattern():void
    		{
    			bmd = new BitmapData(640, 480); // creiamo un oggetto BitmapData con le stesse dimensioni del flusso della webcam (640x480)
    			bmd.draw(vid); // disegnamo nell'oggetto bmd l'attuale frame del flusso video
    			raster = new FLARRgbRaster_BitmapData(bmd); // creiamo un oggetto FLARRgbRaster_BitmapData passandogli il fotogramma catturato
    			detector = new FLARSingleMarkerDetector(fparams, mpattern, 80); // creiamo un nuovo detector passandogli i parametri della webcam e il pattern da rilevare e la larghezza del marker (80 mm)
    		}
    		
    		private function setupPapervision():void
    		{
    			scene = new Scene3D(); // creiamo un anuova scena di Papervision
    			camera = new FLARCamera3D(fparams); // creiamo una nuova camera basata su FLAR e sui parametri caricati dal file .dat
    			container = new FLARBaseNode(); // creiamo un nuovo FLARBaseNode
    			scene.addChild(container); // aggiungiamo l'oggetto FLARBaseNode alla scena di Papervision
    			
    			var pl:PointLight3D = new PointLight3D(); // creiamo una luce da usare in Papervision
    			// posizioniamo la luce
    			pl.x = 1000;  
    			pl.y = 1000;
    			pl.z = -1000;
    			
    			var ml:MaterialsList = new MaterialsList({all: new FlatShadeMaterial(pl)}); // creiamo un nuovo materiale che useremo per i cubi
    			
    			// creiamo i 3 cubi e li posizioniamo a diverse profondità
    			var cube1:Cube = new Cube(ml, 30, 30, 30);
    			var cube2:Cube = new Cube(ml, 30, 30, 30);
    			cube2.z = 50;
    			var cube3:Cube = new Cube(ml, 30, 30, 30);
    			cube3.z = 100;
    			
    			// aggiungiamo i cubi alla scena
    			container.addChild(cube1);
    			container.addChild(cube2);
    			container.addChild(cube3);
    			
    			// impostiamo il rendering della scena
    			bre = new BasicRenderEngine();
    			trans = new FLARTransMatResult();
    			
    			// creiamo la visuale
    			vp = new Viewport3D();
    			// aggiungiamo la scena completa allo stage
    			addChild(vp);
    		}
    		
    		private function renderizza(evt:Event):void
    		{
    			bmd.draw(vid); // disegniamo il frame nell'oggetto bmd 
    			
    				if(detector.detectMarkerLite(raster, 80) && detector.getConfidence() > 0.5) // se il marker viene rilevato
    				{
    					detector.getTransformMatrix(trans); // ricaviamo la transformMatrix dal detector
    					container.setTransformMatrix(trans); // impostiamo la transformMatrix sulla scena
    					bre.renderScene(scene, camera, vp); // renderizziamo la scena di Papervision
    				}
    		}
    		
    	}
    }
    e a parte le maiuscole che dicevo prima a me sembra lo stesso ...
    mi sfugge qualcosa?
    il codice comunque lo sto scrivendo in un file as
    ciaoooooooo by Alex!!!!!!

  8. #8
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Ho visto il codice di esempio e l'ho provato e a me funziona come deve.
    Hai degli errori specifici? In tal caso elencali.
    Inoltre sarebbe meglio se specificassi come stai lavorando, usi Flash Builder come suggerito nel tutorial?

  9. #9
    Utente di HTML.it L'avatar di alexite
    Registrato dal
    Apr 2007
    Messaggi
    130
    a te funziona? O.O

    allora ho la sensazione che sto facendo un errore stupido :-/
    gli errori che mi da sono quelli che t'ho scritto:

    codice:
    Description	Resource	Path	Location	Type
    1013: The private attribute may be used only on class property definitions.	Esempio_flar.as	/Esempio_flar/src	line 57	Flex Problem
    1013: The private attribute may be used only on class property definitions.	Esempio_flar.as	/Esempio_flar/src	line 66	Flex Problem
    1013: The private attribute may be used only on class property definitions.	Esempio_flar.as	/Esempio_flar/src	line 74	Flex Problem
    1013: The private attribute may be used only on class property definitions.	Esempio_flar.as	/Esempio_flar/src	line 83	Flex Problem
    1013: The private attribute may be used only on class property definitions.	Esempio_flar.as	/Esempio_flar/src	line 91	Flex Problem
    1013: The private attribute may be used only on class property definitions.	Esempio_flar.as	/Esempio_flar/src	line 128	Flex Problem
    riferiti alle primary function ... altro non mi dice ..

    e lavoro in Flash Builder

    (ti ripeto che deficito un pochino in materia as3.0 eh?! )

    ma per far funzionare il file d'esempio tu hai semplicemente creato un FLA che richiami il file Esempio_Flar.as ? perchè nella cartella che fa scaricare non c'è nessun swf da cliccare per testare il tutto :O
    ciaoooooooo by Alex!!!!!!

  10. #10
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    >> a te funziona? O.O

    Già

    >> gli errori che mi da sono quelli che t'ho scritto:

    Sono errori tutti uguali che si riferiscono al fatto che le funzioni di tipo "private" devono essere definite dentro ad una classe, quindi evidentemente non lo fai.

    >> e lavoro in Flash Builder

    Personalmente utilizzo FlashDevelop che è una sorta di Flash Builder freeware e open source, ma sostanzialmente non cambia molto, specie se usi l'esempio con le indicazioni del tutorial.

    AS3 è per certi versi più ostico delle vecchie versioni, ma rende possibili cose che prima non si immaginava di poter fare. Ti consiglierei di partire dalle basi per risalire pian piano all'approccio OOP che inizialmente complica le cose, ma quando prendi cognizione del meccanismo, le semplifica pienamente.


    >> ma per far funzionare il file d'esempio tu hai semplicemente creato un FLA che richiami il file Esempio_Flar.as ?

    No, come ti dicevo ho usato FlashDevelop, ma quella del FLA potrebbe essere una via alternativa se proprio non riesci ad usare Flash Builder.
    Nel FLA indichi Esempio_Flar.as come "Document Class" e hai già fatto. Ovviamente il FLA lo metti nella stessa cartella del file .as per essere certo che funzioni.

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.