我的代码正在生成以下错误(它应该使用 PaperVision 制作从右到左的 3D 文本动画):
[故障] 异常,信息=TypeError:错误 #1009:无法访问空对象引用的属性或方法。
但是,仅当我输入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。
关于可能导致此问题的原因或如何解决此问题的任何想法?