I've added the following, but my "blue error code" doesn't take
effect, and to be honest, I'm not sure how to use error handlers (I
haven't needed them in the past). I hope this is correct:
my_loader.contentLoaderInfo.addEventListener(IOErrorEvent, ioReport);
...
private function ioReport():void
{
// blue is error code
mycube.material = new BitmapMaterial(new BitmapData(128, 128, false,
0x0000FF));
}
I hate to keep bugging you guys, but I really don't know where else to
go. I've done everything I know how to do, including exhausting what
I could find on Google.
x.x
On Jul 1, 4:47 pm, Peter Kapelyan <[email protected]> wrote:
> Also you are missing the event like:
>
> function showLoaderResult(event:Event):void {
>
>
>
> On Wed, Jul 1, 2009 at 4:44 PM, Peter Kapelyan <[email protected]> wrote:
> > I would rename the function from contentLoaderInfo since thats a reserved
> > name. Also add an error event if that doesn't work, so you can see what the
> > error may be (possibly sandbox etc).
>
> > -Pete
>
> > On Wed, Jul 1, 2009 at 4:41 PM, away3dfan <[email protected]> wrote:
>
> >> I'm doing something wrong, but I'm not sure what it is. Here is my
> >> code, from what I understand of as3, this should replace the texture
> >> almost instantly, but the contentLoaderInfo() never gets called. The
> >> code should be well-commented. Any idea why the function isn't
> >> getting called or what else might be going wrong?
>
> >> Thanks again.
>
> >> =================================
>
> >> package
> >> {
> >> import away3d.containers.View3D;
> >> import away3d.lights.DirectionalLight3D;
> >> import away3d.materials.BitmapFileMaterial;
> >> import away3d.materials.PhongBitmapMaterial;
> >> import away3d.primitives.Cube;
> >> import away3d.primitives.Sphere;
> >> import away3d.core.utils.Cast;
> >> import away3d.core.base.Mesh;
> >> import away3d.core.base.Face;
> >> import away3d.core.base.Vertex;
> >> import flash.events.Event;
>
> >> import flash.display.Bitmap;
> >> import flash.display.Sprite;
>
> >> import flash.display.BitmapData;
> >> import away3d.materials.BitmapMaterial;
>
> >> import away3d.materials.ColorMaterial;
>
> >> import flash.net.URLRequest;
> >> import flash.display.Loader;
>
> >> [SWF(width="500", height="200", frameRate="60",
> >> backgroundColor="#FFFFFF")]
> >> public class Main extends Sprite
> >> {
> >> private var mycube:Cube;
> >> private var my_loader:Loader;
> >> private var my_url:URLRequest;
>
> >> public function Main()
> >> {
> >> // camera
> >> var view:View3D = new View3D({x:250,y:100});
> >> addChild(view);
>
> >> // create cube
> >> mycube = new Cube();
> >> mycube.width = 300;
> >> mycube.height = 300;
> >> mycube.depth = 300;
> >> mycube.x = mycube.y = mycube.z = 0;
> >> mycube.material = new BitmapMaterial(new
> >> BitmapData(128, 128,
> >> false, 0xFF0000));
> >> view.scene.addChild( mycube );
>
> >> // begin load of new texture
> >> my_loader = new Loader();
> >> my_url = new URLRequest("C:/pic.jpg");
> >> my_loader.load( my_url );
> >> // complete load, apply texture
>
> >> my_loader.contentLoaderInfo.addEventListener(Event.COMPLETE,
> >> contentLoaderInfo);
>
> >> // lights
> >> var light:DirectionalLight3D = new
> >> DirectionalLight3D();
> >> view.scene.addChild(light);
> >> light.y = 500;
> >> light.x = -300;
> >> light.z = -200;
>
> >> // render
> >> view.render();
> >> }
>
> >> private function contentLoaderInfo():void
> >> {
> >> // I would replace this argument with my_url but I
> >> get implicit
> >> coercion errors:
> >> mycube.material = new BitmapFileMaterial(
> >> "C:/pic.jpg" );
>
> >> // this line never changes the cube to green, which
> >> means this
> >> function is not getting called at all:
> >> mycube.material = new BitmapMaterial(new
> >> BitmapData(128, 128,
> >> false, 0x00FF00));
> >> }
> >> }
> >> }
>
> >> On Jul 1, 4:25 pm, Fabrice3D <[email protected]> wrote:
> >> > or cube.material = new BitmapFileMaterial(url);
>
> >> > for an swf its indeed a flash basic loader, once loaded, pass the
> >> > loader data to MovieMaterial as MovieClip
>
> >> > Fabrice
>
> >> > On Jul 1, 2009, at 10:01 PM, Peter Kapelyan wrote:
>
> >> > > Let me know if this helps or is too vague:
>
> >> > > 1. Make cube with some default Bitmapmaterial like this:
>
> >> > > mycube.material=new BitmapMaterial(new BitmapData(128, 128, false,
> >> > > 0xFF0000));
>
> >> > > 2. Load your jpg with URLRequest add contentLoaderInfo listener.
>
> >> > > 3. On listener COMPLETE replace the bitmap something like this:
>
> >> > > mycube.material.bitmap=event.target.content.bitmapData;
>
> >> > > Let me know if it makes sense. There may be a shorter way, but this
> >> > > is how I am used to doing it.
>
> >> > > -Pete
>
> >> > > On Wed, Jul 1, 2009 at 3:43 PM, away3dfan <[email protected]>
> >> > > wrote:
>
> >> > > Absolutely. I want to create a cube in actionscript similar to the
> >> > > following (not tested for errors):
>
> >> > > var c = new Cube({ width:300, height:300, depth:20} );
>
> >> > > Then I want to assign an image to one of the faces, the image should
> >> > > rest in a URL, say, this one:
> >>http://img.timeinc.net/time/photoessays/2008/world_water/water_01.jpg
>
> >> > > Additionally, as I mentioned before, I would like to be able to apply
> >> > > SWF files in the same way, but that's not as important, and I don't
> >> > > know if it's even possible under away3d.
>
> >> > > On Jul 1, 2:55 pm, Peter Kapelyan <[email protected]> wrote:
> >> > > > Can you tell us exactly what you are trying to do, also I can try
> >> > > to help.
>
> >> > > > For instance >
>
> >> > > > Make cube,
> >> > > > Apply Bitmap Material
> >> > > > Change Bitmap Material
>
> >> > > > etc?
>
> >> > > > Not quite sure what you mean by native as3 object jpgs (the ones
> >> > > in the
> >> > > > library?)
>
> >> > > > -Pete
>
> >> > > > On Wed, Jul 1, 2009 at 2:48 PM, away3dfan <[email protected]>
> >> > > wrote:
>
> >> > > > > Thanks for your time.
>
> >> > > > > I've been on the api pages including
> >> > > > >http://www.away3d.com/livedocs/away3d/loaders/data/
> >> > > MaterialData.html
> >> > > > > trying half a dozen different loaders, flash.display.Loader,
> >> > > > > away3d.loaders.data.MaterialData, etc., and looking at over 9000
> >> > > > > tutorials trying to intuit how it's done, but I didn't come up
> >> > > with
> >> > > > > anything specific to native as3 object jpgs (or other formats)
> >> > > applied
> >> > > > > directly to polygons, and for the life of me I can't figure out
> >> > > how to
> >> > > > > load one of these materials (or swfs) into away3d in this way.
>
> >> > > > > Ideally, I would like to do both external images and reflected
> >> > > data
> >> > > > > streams (such as youtube) which may or may not be possible.
>
> >> > > > > But for now, I'd be happy with simple jpg importing.
>
> >> > > > > Appreciate any help.
>
> >> > > > --
> >> > > > ___________________
>
> >> > > > Actionscript 3.0 Flash 3D Graphics Engine
>
> >> > > > HTTP://AWAY3D.COM
>
> >> > > --
> >> > > ___________________
>
> >> > > Actionscript 3.0 Flash 3D Graphics Engine
>
> >> > > HTTP://AWAY3D.COM
>
> > --
> > ___________________
>
> > Actionscript 3.0 Flash 3D Graphics Engine
>
> > HTTP://AWAY3D.COM
>
> --
> ___________________
>
> Actionscript 3.0 Flash 3D Graphics Engine
>
> HTTP://AWAY3D.COM