8 如何将图片加载进swf

本文介绍了一种在SWF文件中嵌入图片的方法,通过使用Embed特性将图片资源直接编译进SWF文件,避免了外部加载的问题。文中提供了一个具体的示例代码,展示了如何利用Flash和Papervision3D实现这一过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何将图片加载进swf

使用位图文件材质(BitmapFilematerial)将图片贴到平面的时候,我们将会看到效果。不过大家有没有注意到,当我们将生成的运行文件swf拷贝到另外一个地方,打开时却不能显示图片。

如何解决这个问题呢?可以使用Embed。Embed在Flash编译阶段就将资源嵌入,也就是说图片资源是会被编译进swf文件里面去的,这样子的好处是代码比较简洁,使用方便,也不存在加载顺序的问题;缺点是会增大swf文件的体积。

下面来看代码。

代码清单1

package 
{
       import flash.events.Event;
       import mx.core.BitmapAsset;
       import org.papervision3d.materials.BitmapMaterial;
       import org.papervision3d.objects.primitives.Plane;
       import org.papervision3d.view.BasicView;
       /**
        * ...
        * @author yl
        */

       public class ShowPlane extends BasicView
       {
              //定义一个平面变量
              private var plane:Plane;

              //嵌入图片1.jpg到swf,定义一个类Pic,它和我们的图片1.jpg关联
              [Embed(source ="../assets/1.jpg")] private var Pic:Class;            

              public function ShowPlane()
              {
                     //创建图片,并将其转换为位图元件类(BitmapAsset)
                     var pic:BitmapAsset =new Pic() as BitmapAsset;

                     //依据位图元件类创建位图材质
                     var m1:BitmapMaterial =new BitmapMaterial(pic.bitmapData);   
                     plane = new Plane(m1,500, 500, 10, 10);
                     scene.addChild(plane);
                     plane.material.doubleSided = true;

                     startRendering();                

              }

              override protected function onRenderTick(e:Event =null):void {
                     super.onRenderTick();
                     plane.rotationY += 3;
              }
       }
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值