Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   API приложений и сред (http://www.flasher.ru/forum/forumdisplay.php?f=61)
-   -   проблема с отображением BitmapMaterial away 3d (http://www.flasher.ru/forum/showthread.php?t=177992)

sneltyn 12.04.2012 19:03

проблема с отображением BitmapMaterial away 3d
 
по логике должно работать, но не тут то было=(

Код AS3:

package
{
        import flash.display.MovieClip;
        import flash.display.Sprite;
        import flash.events.Event;
        import flash.display.Bitmap;
        import flash.display.StageAlign;
        import flash.display.StageScaleMode;
        import away3d.cameras.*;
 
        import away3d.containers.View3D;
        import away3d.primitives.Plane;
        import away3d.materials.BitmapFileMaterial;
 
        import away3d.core.utils.Cast;
 
        import com.greensock.*
        import com.greensock.easing.*;
 
        import gs.*
 
        import flash.display.Loader;
        import flash.net.URLRequest;
        import flash.net.URLLoader;
 
        public class Main extends Sprite {
                private var viewport:View3D;
                private var cube:Plane;
                private var xml:XML;
                private var xmlList:XMLList;
                private var myMaterial:BitmapFileMaterial
                private var planes:Array = [];
                private var current=0;
 
 
        public function Main() {
                stage.align = StageAlign.TOP_LEFT;
                stage.scaleMode = StageScaleMode.NO_SCALE;
                viewport = new View3D({x:0, y:0});
                addChild(viewport);
                loadXML("xml.xml");
        }
 
        private function loadXML(file:String):void{
                var xmlLoader:URLLoader = new URLLoader();
                xmlLoader.load(new URLRequest(file));
                xmlLoader.addEventListener(Event.COMPLETE, comleteLoading);
        }
 
 
        private function comleteLoading(e:Event):void{
                xml = XML(e.target.data);
                xmlList = xml.children();
                trace(xmlList.length());
                createImages();
                animate()
        }
 
                private function createImages() {
                for (var i:int=0; i<xmlList.length();i++)
                {
 
                        //var mc:MovieClip = new block();
                        //var loader:Loader = new Loader;
                        //mc.addChild(loader)
                        //loader.load(new URLRequest(xmlList[1].@url))
                        //loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaderComplete)
                        trace(xmlList[1].@url)
                        myMaterial = new BitmapFileMaterial("metal.jpg");
                        //mat = new BitmapFileMaterial("images/iPhone-back2.png");
                        cube = new Plane({width:600, height:900, material:myMaterial});
 
                        viewport.x = stage.stageWidth/2
                        viewport.y = stage.stageHeight/2;
 
                        viewport.scene.addChild(cube);
                        cube.rotationX = 90;
                        planes.push(cube);
                        myMaterial.alpha =1;
.......
                }

В чем проблема, плоскость показывается а загруженная картинка нет, ошибки не всплывают! Как быть?

Добавлено через 1 час 5 минут
Хорошо другой вопрос можно ли в мувиМатериал загрузить, картику с помощью Loader?

Sated 12.04.2012 23:23

если не отображается картинка, то она не подгрузилась, для этого надо делать Loader и событие к нему, которое после загрузки будет запускать функцию, в которой будет удалять слушателя,а потом выполнять действия, которые тебе нужны. и вообще, когда ставишь картинку в качестве материала, то работают не с самим Bitmap, а с его свойством - BitmapData.

Цитата:

можно ли в мувиМатериал загрузить
Тебе это не надо, MovieMaterial служит не для загрузки в него картинки, проще всего делать так:
Код AS3:

[Embed (source="1.swf")]
private const var_movie: Class;

после
Код AS3:

myMovieMaterial = new MovieMaterial(new var_movie());

у примитива cube есть свойство material, так что ему можно сделать:
Код AS3:

myCube.material = myMovieMaterial;


sneltyn 12.04.2012 23:43

Код AS3:

[Embed (source="1.swf")]
private const var_movie: Class;

а если мне нужно в цикле это сделать типа
Код AS3:

 
[Embed (source="i.swf")]
private const var_movie: Class;

Добавлено через 12 минут
Я с помощью Loader грузил, и не чего не вышло!


Часовой пояс GMT +4, время: 05:24.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.