1

私のコードは次のエラーを生成しています (PaperVision で右から左への 3D テキスト アニメーションを作成することになっています):

[フォールト] 例外、情報 = TypeError: エラー #1009: null オブジェクト参照のプロパティまたはメソッドにアクセスできません。

ただし、このエラーは、right-to-left向きのあるテキストを入力した場合にのみ表示されます。英語のテキストを使用すると、エラーは発生しません。

これが私のコードです:

package {
    import flash.display.Sprite;
    import flash.events.Event;

    import org.papervision3d.scenes.Scene3D
    import org.papervision3d.view.Viewport3D
    import org.papervision3d.cameras.Camera3D
    import org.papervision3d.render.BasicRenderEngine
    import org.papervision3d.typography.Font3D
    import org.papervision3d.typography.fonts.HelveticaBold
    import org.papervision3d.typography.Text3D
    import org.papervision3d.materials.special.Letter3DMaterial
    import flash.text.engine.FontDescription
    import flash.text.engine.ElementFormat
    import flash.text.engine.TextElement
    import flash.text.engine.TextBlock
    import flash.text.engine.TextLine

    /* @author vahid */
    public class Main extends Sprite {
        private var fd:FontDescription
        private var ef:ElementFormat
        private var te:TextElement        
        protected var st:String;

        private var scene:Scene3D
        private var view:Viewport3D
        private var camera:Camera3D
        private var render:BasicRenderEngine
        private var vpWidth:Number = stage.stageWidth;
        private var vpHeight:Number = stage.stageHeight;
        private var text3d:Text3D 
        private var font3d:Font3D 
        //private var font:HelveticaBold
        private var textMaterial:Letter3DMaterial 
        private var text:String 

        public function Main():void {
            if (stage)
                init();
            else
                addEventListener(Event.ADDED_TO_STAGE, init);
        }

        private function init(e:Event = null):void {
            removeEventListener(Event.ADDED_TO_STAGE, init);
            // rtl block 
            fd = new FontDescription ()                    
            ef = new ElementFormat (fd)            
            te = new TextElement ("?????? ?????? ???? ?????? ?? papervision", ef)

            text = te.text        
            //3d block

            scene = new Scene3D ()
            view = new Viewport3D (vpWidth,vpHeight,true,true,false,false)
            camera = new Camera3D ()
            render = new BasicRenderEngine()
            addChild (view)
            this.addEventListener (Event.ENTER_FRAME , renderThis)
            textMaterial = new Letter3DMaterial(0xFF0000,1)
            font3d = new HelveticaBold()
            text3d = new Text3D (text, font3d, textMaterial)
            scene.addChild (text3d)
        }

        protected function renderThis(e:Event):void 
        {
            text3d.rotationY +=5
            render.renderScene(scene,camera,view)
        }
    }
}

関連する場合: 私は FlashDevelop を使用しています。

この問題の原因、または回避方法についてのアイデアはありますか?

4

1 に答える 1