AS3取消了movieclip的loader类,所以加载图片除了用
img = new Loader();
img.load(new URLRequest("assets/materials/c.png"));
//加载完成后的事件响应
img.contentLoaderInfo.addEventListener(Event.COMPLETE, setup);
img.load(new URLRequest("assets/materials/c.png"));
//加载完成后的事件响应
img.contentLoaderInfo.addEventListener(Event.COMPLETE, setup);
就没有其他办法了,特别在要载入大量图片的环境下,就很难使用。
前几天发现了BulkLoader,大大简化了载入图片所需的步骤。而且可以对应各种格式,比如xml,video,声音,图片等文件。下面这个例子就是和pv3d结合使用的例子。
<object class="embedflash" width="425" height="355" data="http://www.lotloft.com/share/CubeWithDifferentSides.swf" type="application/x-shockwave-flash"> </object>
package {
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.events.Event;
import br.com.stimuli.loading.BulkErrorEvent;
import br.com.stimuli.loading.BulkLoader;
import br.com.stimuli.loading.BulkProgressEvent;
import org.papervision3d.lights.PointLight3D;
import org.papervision3d.materials.BitmapMaterial;
import org.papervision3d.materials.shaders.PhongShader;
import org.papervision3d.materials.shaders.ShadedMaterial;
import org.papervision3d.materials.shaders.Shader;
import org.papervision3d.materials.utils.MaterialsList;
import org.papervision3d.objects.primitives.Cube;
import org.papervision3d.view.BasicView;
[SWF(width="640", height="480", backgroundColor="#000000", frameRate="60")];
public class CubeWithDifferentSides extends BasicView {
private var light:PointLight3D;
private var cube:Cube;
//loading class
public var loader : BulkLoader = new BulkLoader("main-site");
public function CubeWithDifferentSides() {
// Load images data
loadImagesData();
}
private function loadImagesData():void {
//var loader : BulkLoader = new BulkLoader("main-site");
loader.add("images/back.jpg", {id:"back"});
loader.add("images/bottom.jpg", {id:"bottom"});
loader.add("images/front.jpg", {id:"front"});
loader.add("images/left.jpg", {id:"left"});
loader.add("images/right.jpg", {id:"right"});
loader.add("images/top.jpg", {id:"top"});
loader.addEventListener(BulkLoader.COMPLETE, onAllLoaded);
loader.start();
}
public function onAllLoaded(evt:Event ):void {
var materialsList:MaterialsList = new MaterialsList();
light = new PointLight3D();
materialsList.addMaterial(createShadedMaterial(loader.getBitmap("back")), "back");
materialsList.addMaterial(createShadedMaterial(loader.getBitmap("bottom")), "bottom");
materialsList.addMaterial(createShadedMaterial(loader.getBitmap("front")), "front");
materialsList.addMaterial(createShadedMaterial(loader.getBitmap("left")), "left");
materialsList.addMaterial(createShadedMaterial(loader.getBitmap("right")),"right");
materialsList.addMaterial(createShadedMaterial(loader.getBitmap("top")), "top");
cube = new Cube(materialsList, 500, 500, 500, 5, 5, 5);
scene.addChild(cube);
startRendering();
}
private function createShadedMaterial(bitmap:Bitmap):ShadedMaterial {
trace(bitmap)
var bitmapMaterial:BitmapMaterial = new BitmapMaterial(bitmap.bitmapData, true);
var shader:Shader = new PhongShader(light, 0xffffff, 0x333333, 10, bitmap.bitmapData, bitmap.bitmapData);
var shadedMaterial:ShadedMaterial = new ShadedMaterial(bitmapMaterial, shader);
return shadedMaterial;
}
override protected function onRenderTick(event:Event=null):void {
cube.rotationY += (viewport.containerSprite.mouseX - cube.rotationY) * .1;
cube.rotationX += (viewport.containerSprite.mouseY - cube.rotationX) * .1;
renderer.renderScene(scene, camera, viewport);
}
}
}
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.events.Event;
import br.com.stimuli.loading.BulkErrorEvent;
import br.com.stimuli.loading.BulkLoader;
import br.com.stimuli.loading.BulkProgressEvent;
import org.papervision3d.lights.PointLight3D;
import org.papervision3d.materials.BitmapMaterial;
import org.papervision3d.materials.shaders.PhongShader;
import org.papervision3d.materials.shaders.ShadedMaterial;
import org.papervision3d.materials.shaders.Shader;
import org.papervision3d.materials.utils.MaterialsList;
import org.papervision3d.objects.primitives.Cube;
import org.papervision3d.view.BasicView;
[SWF(width="640", height="480", backgroundColor="#000000", frameRate="60")];
public class CubeWithDifferentSides extends BasicView {
private var light:PointLight3D;
private var cube:Cube;
//loading class
public var loader : BulkLoader = new BulkLoader("main-site");
public function CubeWithDifferentSides() {
// Load images data
loadImagesData();
}
private function loadImagesData():void {
//var loader : BulkLoader = new BulkLoader("main-site");
loader.add("images/back.jpg", {id:"back"});
loader.add("images/bottom.jpg", {id:"bottom"});
loader.add("images/front.jpg", {id:"front"});
loader.add("images/left.jpg", {id:"left"});
loader.add("images/right.jpg", {id:"right"});
loader.add("images/top.jpg", {id:"top"});
loader.addEventListener(BulkLoader.COMPLETE, onAllLoaded);
loader.start();
}
public function onAllLoaded(evt:Event ):void {
var materialsList:MaterialsList = new MaterialsList();
light = new PointLight3D();
materialsList.addMaterial(createShadedMaterial(loader.getBitmap("back")), "back");
materialsList.addMaterial(createShadedMaterial(loader.getBitmap("bottom")), "bottom");
materialsList.addMaterial(createShadedMaterial(loader.getBitmap("front")), "front");
materialsList.addMaterial(createShadedMaterial(loader.getBitmap("left")), "left");
materialsList.addMaterial(createShadedMaterial(loader.getBitmap("right")),"right");
materialsList.addMaterial(createShadedMaterial(loader.getBitmap("top")), "top");
cube = new Cube(materialsList, 500, 500, 500, 5, 5, 5);
scene.addChild(cube);
startRendering();
}
private function createShadedMaterial(bitmap:Bitmap):ShadedMaterial {
trace(bitmap)
var bitmapMaterial:BitmapMaterial = new BitmapMaterial(bitmap.bitmapData, true);
var shader:Shader = new PhongShader(light, 0xffffff, 0x333333, 10, bitmap.bitmapData, bitmap.bitmapData);
var shadedMaterial:ShadedMaterial = new ShadedMaterial(bitmapMaterial, shader);
return shadedMaterial;
}
override protected function onRenderTick(event:Event=null):void {
cube.rotationY += (viewport.containerSprite.mouseX - cube.rotationY) * .1;
cube.rotationX += (viewport.containerSprite.mouseY - cube.rotationX) * .1;
renderer.renderScene(scene, camera, viewport);
}
}
}
相关推荐
BulkLoader是一个老外写的loader类。它能够对多个不同的外部文件进行队列下载,下载时能够获取单个对象的下载百分比和所有对象加起来的总体百分比~而且,能够对下载==
flash action script bulkloader open source i like it
BulkLoader文件加载类库,一个很实用的加载库,实用方便
flash actionscript3 as3 BulkLoader多资源加载队列的用法.ziploading加载队列bulk_loader
as3里面最方便的下载类,里面附带案例,并可以读取加载类中的类。
BulkLoader是用Actionscript 3(AS3)编写的最小库,旨在使加载和管理复杂的加载需求更加轻松快捷。 BulkLoader采用了一种更加动态,更少架构的方法。 很少导入,并且大量使用了AS3的动态功能,BulkLoader具有一种...
NULL 博文链接:https://yoyoqq2008.iteye.com/blog/838434
如果选择.tar.gz文件分发,只需将其解压缩到$ HOME目录之类的目录中,然后将bin子目录添加到PATH环境变量中即可。 例如: export PATH="$PATH:$HOME/voltdb-ent-5.3/bin" 您可以选择将其添加到您的.bashrc文件中...
此示例中的代码取自 Cassandra 2.0.11,但具有对该项目中输出格式和记录编写器副本的。 笔记 示例数据和 schema.cql 位于 src/main/resources/data 下 用法 将 datastax cassandra 连接器用于 spark spark-submit...
file -Dfile=dse-4.5.0.jar -DgroupId=com.datastax -DartifactId=dse -Dversion=4.5.0 -Dpackaging=jar运行演示要运行此代码,您需要在“src/main/resources”目录中拥有集群“cassandra.yaml”、dse.yaml 和“log4...
导入模板和常规代码(真实的服务器软件) bulkloader.py --restore --url=http://localhost:12380/remote_api --filename=online-src/amor-code.db 等待4分钟,然后停止Development App Server并重新启动
appfy.recipe.gae:工具: 在 buildout 目录中安装一个 python 可执行文件和几个 SDK 脚本:appcfg、bulkload_client、bulkloader、dev_appserver 和 remote_api_shell。 它还允许设置默认值来启动 dev_appserver。 ...
比较有名的bulkloader批量下载组件,不过批量下载时候下载进度并不准确,通常团队在批量下载配置表中自行生成资源文件大小,然后自己累加显示
要从 Data Store 以 CSV remote_api下载条目,需启用remote_api并包含一个bulkloader.yaml 。 appcfg.py download_data --url=...
$ cqlsh -f schema.cql然后,使用sstableloader将sstableloader加载到 Cassandra: $ sstableloader -d <ip> data/test_bulkloader/target_history(假设您的$PATH有cqlsh和sstableloader )检查加载的数据示例 ...
手机助手 后端托管在 Google APP Engine 上的 Hello World Android 应用程序 如何在谷歌云上批量加载... 运行此命令 appcfg.py upload_data --config_file=bulkloader.yaml --filename=data.csv --url= --kind=Course