Oh sorry forgot to mention the constructed object is called by the
"create" function, maybe because I clone the model it isn't working?

On Jun 26, 6:21 pm, Th3Sh33p <[email protected]> wrote:
> Sorry Fabrice, but I can't get this to work, here's my entire class.
> Maybe it isn't working because i'm trying to clone the object?
>
> package  {
>         import away3dlite.containers.ObjectContainer3D
>         import away3dlite.loaders.Loader3D
>         import away3dlite.events.Loader3DEvent;
>         import away3dlite.loaders.AbstractParser
>         import away3dlite.loaders.AWData;
>         import away3dlite.containers.ObjectContainer3D
>         import flash.display.Sprite
>         import flash.events.Event;
>         import away3dlite.primitives.Cube6;
>         import away3dlite.materials.WireColorMaterial;
>         import away3dlite.containers.ObjectContainer3D
>         import away3dlite.materials.BitmapMaterial;
>
>         public class ObjectMani extends Sprite{
>                 private var knownObjects:Array = ["Tree","Tree"];
>                 private var constructed:Array = [];
>
>                 public var afterLoadFunction:Function;
>                 public var objectsLoaded:int = 0;
>                 public function ObjectMani(func:Function = null){
>                         afterLoadFunction = func
>                         for (var i:int = 0;i<knownObjects.length;i++){
>                                 var ld:Loader3D = new Loader3D()
>                                 
> ld.addEventListener(Loader3DEvent.LOAD_SUCCESS,model_loaded);
>                                 
> ld.addEventListener(Loader3DEvent.LOAD_ERROR,model_errored);
>                                 ld.name = String(i);
>                                 var ap:AWData = new AWData()
>                                 ap.pathToSources = 
> "C:/xampp/htdocs/3d/unit/"+knownObjects[i]
> +"/"+knownObjects[i]+"/images"
>                                 
> ld.loadGeometry("unit/"+knownObjects[i]+"/"+knownObjects[i]
> +".awd",ap);
>                         }
>                         //addEventListener(Event.ADDED,added);
>                 }
>                 private function added(e:Event){
>                         //afterLoadFunction()
>                 }
>                 private function model_loaded(e:Loader3DEvent){
>                         trace("Model "+knownObjects[Number(e.target.name)], " 
> : Successful
> Load!");
>                         constructed[Number(e.target.name)] = e.target.handle
>                         objectsLoaded++;
>                         if (objectsLoaded>=knownObjects.length){
>                                 afterLoadFunction()
>                         }
>                 }
>                 private function model_errored(e:Loader3DEvent){
>                         trace("Model "+knownObjects[Number(e.target.name)], " 
> : Load
> Fail!");
>                 }
>                 public function getId(str:String){
>                         var found:Boolean = false
>                         for (var i:int = 0;i<knownObjects.length&&!found;i++){
>                                 if (str == knownObjects[i]){
>                                         return i;
>                                         found = true
>                                 }
>                         }
>                         if (!found){
>                                 return 0;
>                         }
>                 }
>                 public function create(id:int,scl:Number = 1) {
>                         //return getDef()
>                         return fixModel(constructed[id].clone(),scl);
>                         //return this["create"+knownObjects[id]]()
>                 }
>                 private function getDef():ObjectContainer3D{
>                         var n:Cube6 = new Cube6(new 
> WireColorMaterial(),10,20,10,2,2,2);
>                         var con:ObjectContainer3D = new ObjectContainer3D(n);
>                         return con;
>                 }
>                 private function fixModel(mv:ObjectContainer3D,scl:Number){
>                         mv.y -= 100
>                         mv.scaleX = .1*scl
>                         mv.scaleY = .1*scl
>                         mv.scaleZ = .1*scl
>                         return mv
>                 }
>
>         }
>
> }
>
> On Jun 26, 3:57 pm, Fabrice3D <[email protected]> wrote:
>
>
>
> > its a setter... sorry for the typo.
>
> > >> ap.pathToSources("/stuff/otherstuff/myimages/");
>
> > should be ap.pathToSources = "/stuff/otherstuff/myimages/";
>
> > /**
> >                 * Allows to set custom path to source(s) map(s) other than 
> > set in file
> >                 * Standard output url from Prefab awd files is 
> > "images/filename.jpg"
> >                 * when set pathToSources, url becomes  [newurl]filename.jpg.
> >                 * Example: AWData.pathToSources = "mydisc/myfiles/";
> >                 * Only required for load method using Loader3D
> >                 * var awd:AWData = new AWData();
> >                 * awd.pathToSources = "mydisc/myfiles/";
> >                 * loader = new Loader3D();
> >                 * loader.addEventListener(Loader3DEvent.LOAD_SUCCESS, 
> > onSuccess);
> >                 * loader.loadGeometry("mymodels/car.awd", awd);
> >                 *
> >                 */
> >                 public function set pathToSources(url:String):void
> >                 {
> >                         customPath = url;
> >                 }
>
> > Fabrice
>
> > On Jun 26, 2010, at 9:22 PM, Th3Sh33p wrote:
>
> > > Thanks for quick reply Fabrice,
>
> > > After modifying my script like so...
>
> > > var model_number:int = 0
> > > var model:String = "tree";
> > > var ld:Loader3D = new Loader3D()
> > > ld.addEventListener(Loader3DEvent.LOAD_SUCCESS,model_loaded);
> > > ld.addEventListener(Loader3DEvent.LOAD_ERROR,model_errored);
> > > ld.name = String(model_number);
> > > var ap:AWData = new AWData()
> > > ap.pathToSources("unit/"+model+"/"+model+"/images")
> > > ld.loadGeometry("unit/"+model+"/"+model+".awd",ap);
> > > private function model_loaded(e:Loader3DEvent){
> > > constructed[Number(e.target.name)] = e.target.handle
> > > }
>
> > > I get the error
>
> > > Line 29 1061: Call to a possibly undefined method pathToSources
> > > through a reference with static type away3dlite.loaders:AWData.
>
> > > Is this possible in away3dlite?
>
> > > On Jun 26, 3:07 pm, Fabrice3D <[email protected]> wrote:
> > >> Prefab resolves urls and also unescape them.
> > >> just open bitmapFilematerial and add a trace where the url is passed to 
> > >> load the image.
> > >> you probably will get hints there.
>
> > >> note that you also can pass a custom path to AWData parser for your 
> > >> images directory as well.
>
> > >> like var ap:AWData = new AWData();
> > >> ap.pathToSources("/stuff/otherstuff/myimages/");
>
> > >> you also can add to init object of the AWData instance like this if you 
> > >> use the parse handler for embedded awd files
> > >> var ap:AWData = new AWData({customPath:"/stuff/otherstuff/myimages/"});
>
> > >> Fabrice
>
> > >> On Jun 26, 2010, at 7:37 PM, Th3Sh33p wrote:
>
> > >>> I created a tree model, which I would like to place in my project, it
> > >>> was created as a obj file,  imported into prefab, then a texture was
> > >>> added and I exported as a awd file. Then I used this script...
>
> > >>> var model_number:int = 0
> > >>> var model:String = "tree";
> > >>> var ld:Loader3D = new Loader3D()
> > >>> ld.addEventListener(Loader3DEvent.LOAD_SUCCESS,model_loaded);
> > >>> ld.addEventListener(Loader3DEvent.LOAD_ERROR,model_errored);
> > >>> ld.name = String(model_number);
> > >>> var ap:AWData = new AWData()
> > >>> ld.loadGeometry("unit/"+model+"/"+model+".awd",ap);
>
> > >>> private function model_loaded(e:Loader3DEvent){
> > >>> constructed[Number(e.target.name)] = e.target.handle
> > >>> }
> > >>> .. to import the model, which was successful, however the model has no
> > >>> material or texture. I have tried various things I've seen on other
> > >>> threads but the model is always white when imported.The folder
> > >>> "images" is located next to "tree.awd".
>
> > >>> How can I import this model with it's material?
>
> > >>> *The model imports successfully with textures back into prefab

Reply via email to