0
我用非常绿的手指打字,所以请原谅。从示例中学习,我一直试图在ActionScript中加载和显示图像。这是我的工作对原来的例子:在ActionScript中加载和显示图像
...
...
var bmd2:BitmapData = bmd.clone();
var infoBM:Bitmap = new Bitmap(bmd2);
var back:MovieClip = new MovieClip();
back.name = "back";
back.rotationX = -90;
var bSurface:MovieClip = new MovieClip();
bSurface.y = int(...
bSurface.z = int(...
bSurface.addChild(infoBM);
var overlay:Sprite = new Sprite();
overlay.graphics.beginFill(...);
overlay.graphics.drawRect(0, 0, bSurface.width, bSurface.height);
overlay.graphics.endFill();
bSurface.addChild(overlay);
back.addChild(bSurface);
var tf:TextField = new TextField();
tf...
tf...
tf...
bSurface.addChild(tf);
...
...
我试图将图像放置到bSurface而不是文本块,如上面。到目前为止,我想出了:
var iSprite:Sprite = new Sprite();
var iMatrix:Matrix = new Matrix();
var bmData:BitmapData;
bmData = new BitmapData(surface.width, surface.height, true, 123);
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
loader.load(new URLRequest("c:\pixlr.png"));
function onComplete (event:Event):void
{
bmData = Bitmap(LoaderInfo(event.target).content).bitmapData;
}
iMatrix.tx = 0;
iMatrix.ty = 0;
iSprite.graphics.beginBitmapFill(bmData, iMatrix, false, true);
iSprite.graphics.drawRect(0, 0, surface.width, surface.height);
iSprite.graphics.endFill();
surface.addChild(iSprite);
...和:
var bmData:BitmapData;
bmData = new BitmapData(surface.width, surface.height, true, 123);
var loader:Loader = new Loader();
var location:URLRequest = new URLRequest("c:\pixlr.png");
loader.load(location);
bmData = Bitmap(loader.content).bitmapData;
surface.addChild(bmData);
但没有成功。我几天来一直在悲惨地失败,并且非常感谢一些帮助。
请多关照,
索非亚
你好整形外科医生,谢谢你的解决方案;它完美地工作。但是,我必须将图像文件放在同一个目录中才能使用;有什么理由为什么文件路径会失败?此外,即使没有事件侦听器,您的示例也能正常工作。那是什么,并且在没有它的情况下使用装载机是否安全?再一次,非常感谢你。重要的是,它现在起作用 - 经过许多无用的,艰苦的试验和错误无知的小时。 – iSofia
1.图像路径为“C:\ pixlr.png” - 您在上面的代码中指定了该路径。您可以使用绝对路径或相对路径。 2.事件监听器不是必需的。它会告诉你图像何时加载,这样你就不会在它出现之前对它进行调用,并且还可以让它在加载后做一些事情,例如淡入。 –
你简直太棒了。底线是你解决了我几天未能成功挣扎的问题,为此,我衷心地感谢你。 – iSofia