I have no time to test your class, but if its still the path issue: it must be 
relative to your swf.

Fabrice

On Jun 27, 2010, at 12:21 AM, Th3Sh33p 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