很多人出现flash加载外部图片而不能控制显示大小的问题,导致这样问题的原因其实是因为flash在加载图片是采用渐进式的方式,在图片没有加载完成的时候,flash是不知道你的图片的大小的和尺寸的属性的。所以你在程序中即时加入控制大小的代码也无法控制图片。因为代码往往在图片还没有加载完之前就执行了,也就是说你的代码是找不到执行的对象的。所以使用_width和_height代码是无效的。而_xscale和_yscale可以执行但是因为是按照百分比计算的,所以也不能控制不同大小的图片最后显示同样大小的尺寸。
解决办法:
loadClip代码,我想你应该也是知道的, loadClip代码就是解决这个问题的最佳人选了。loadMovie属于初级代码,它没有侦听器这样的属性,因此无法捕捉到文件的属性(大小,尺寸)。因此我们不推荐使用这个代码,如果你的flash只是用于本机播放的,不存在网络延迟那么也就无所谓的了,但是如果你要控制加载图片的大小,那么还是需要用loadClip即时你的flash是本地播放的,因为即时加载本地的图片,加载图片的时间肯定也是滞后于代码执行的,因此我们选用 loadClip代码,作为加载外部文件的最佳代码。
我们看以下它侦听器的各项属性:(我这里就讲一个了)
onLoadInit
属性是用于检测文件状态属性的
这个属性非常的重要,因为它能告诉你图片的各项属性,也就是只有这个时候你才能知道文件的尺寸大小。你可以试一下trace(MC._width)是不是就是图片的大小。如果是,就证明图片已经加载完毕,并且你可以通过程序去控制它的大小了。
onLoadInit= function(target_mc:MovieClip){
target_mc._width=100;
target_mc._height=100;
}
看看是不是加载近来的图片就是100像素*100像素的显示了,你可以通过程序自由控制加载近来的图片大小了。
延伸代码,如何让你的图片可以宽是100像素而高是等比缩放的呢?
onLoadInit = function(target_mc:MovieClip){
target_mc._height=(100*target_mc._height)/target_mc._width;
target_mc._width=100;
}
target_mc._height=(100*target_mc._height)/target_mc._width;
放在上面很重要的哦,千万不要这样放:
target_mc._width=100;
target_mc._height=(100*target_mc._height)/target_mc._width;
这样你的高肯定不是等比率的。
通过以上讲解是不是可以啦!
参考flash帮助文档,我弄了个简单的实验效果,大家可以直接复制粘贴
this.createEmptyMovieClip("image_mc", this.getNextHighestDepth());
var mclListener:Object = new Object();
mclListener.onLoadInit = function(target_mc:MovieClip) {
target_mc._width = 100;
target_mc._height = 100
};
var image_mcl:MovieClipLoader = new MovieClipLoader();
image_mcl.addListener(mclListener);
image_mcl.loadClip("http://www.helpexamples.com/flash/images/image1.jpg", image_mc);
可以测试代码效果
分享到:
相关推荐
在本文中,我们将深入探讨如何使用Flash从外部加载缩略图图片,并且通过提供的源码和动作脚本来学习这一技术。这个示例涉及到Flash ActionScript编程,它是一种强大的脚本语言,用于创建交互式和动态内容。让我们...
本案例聚焦于"酷哥flash支持库加载外部图片"这一主题,它涉及到的是Flash平台上的编程,特别是如何通过特定的库来加载和显示外部的图片资源。易语言作为中国本土化的一种编程语言,因其简单易学的特点而受到不少初学...
在本文中,我们将深入探讨如何使用Flash通过XML加载任意大小的图片,并实现图片的居中显示,以及结合九宫格实现图片的外边框效果。此外,我们还将讨论如何使图片具有点击放大功能,这对于创建交互式的Web内容至关...
外部加载SWF(Shockwave Flash)文件是一种在网页或应用程序中动态引入Flash内容的技术,它允许开发者在不更新整个页面的情况下更新或替换Flash组件。这种技术对于创建动态、交互式的Web体验尤其有用,例如游戏、...
在这个“带xml加载外部图片的拼图”项目中,XML被用来作为数据载体,允许游戏动态地从外部加载图片资源,提供了一种灵活且可扩展的方式。 首先,我们来了解一下XML的基本概念。XML是一种自描述性的语言,它的结构...
Flash的预加载过程分为几个阶段:加载启动画面、加载主SWF文件、加载外部资源如图像、音频或XML文件等。预加载控件(Preloader Control)通常是一个小型的自包含SWF,它的任务是在主应用程序加载之前显示进度条和...
MicroBlaze可以直接控制外部的加载Flash芯片,FPGA的内部功能逻辑可以通过MicroBlaze间接地访问BPI Flash芯片,实现对BPI Flash内部数据进行读写操作。 2. MicroBlaze微控制器与BPI Flash接口的设计 MicroBlaze微...
1. **加载过程**:在Flash中,当内容如SWF文件、图片或视频需要从网络加载时,加载过程会分为几个阶段:初始化、加载数据、解析数据和完成。开发者可以利用这些阶段来创建进度条或动态效果。 2. **ActionScript**:...
在Flash开发中,加载外部资源是一项常见的需求,尤其在处理大型图像或需要动态更新内容时。本案例聚焦于“flash加载外部位图”,这涉及到AS3.0编程语言的应用,以及如何利用ActionScript来实现这一功能。位图是图形...
3. 数据加载:图片数据通常存储在外部XML或JSON文件中,Flash程序通过读取这些文件来动态加载图片。 4. 用户接口:包括导航按钮、指示器等,都是通过ActionScript控制的动态元素。 四、ArtFlashGallery ...
6. **性能优化**:由于读取外部FLASH比读取内部存储慢,可能需要优化数据读取策略,比如预加载常用汉字,或者采用缓存机制减少频繁的SPI通信。 最后,项目中提供的“UCGUI 汉字显示(外部FLASH)”可能包含源代码、...
在本文中,我们将深入探讨如何使用STM32F103ZET6微控制器驱动LCD屏幕来显示存储在内部FLASH中的图片。STM32系列是意法半导体(STMicroelectronics)推出的基于ARM Cortex-M内核的微控制器,广泛应用在嵌入式系统设计...
在嵌入式系统中,由于程序在DSP内部存储器的运行速度远大于片外存储器的运行速度,因此通常需要将程序从外部加载到DSP内部运行。然而,由于C6000系列DSP没有片上非易失性存储器,最常用的方式是采用非易失Flash...
如果图片存储在外部,我们需要使用Loader对象加载图片。加载完成后,可以将图片内容赋值给显示对象,然后将其添加到舞台上进行显示。 6. **时间轴控制**: 使用ActionScript,我们可以精确地控制时间轴的播放,...
本示例“Flash实现动态加载的文本框特效.rar”聚焦于如何在Flash环境中实现文本的动态加载,并且提供了一种方法来控制加载文本的样式,包括链接的颜色和样式等。这在创建交互式或数据驱动的Flash应用程序时非常有用...
3. **设置Flash属性**:插入后,你可以调整Flash对象的大小、位置,甚至可以设置其在演示时的行为,如自动播放、点击播放等。这些设置通常在“动作设置”对话框中完成。 4. **预览与播放**:在PPT的幻灯片放映模式...
本代码示例展示了如何使用ActionScript 3.0在Flash中创建一个简单的应用程序,该程序能够加载并显示用户选择的图片文件。通过使用`NativeMenu`、`File`、`FileStream`和`Loader`等类,我们可以实现文件的选择、读取...
1. 图片加载:ActionScript可以动态加载外部图片,这通常通过`Loader`类完成,它允许我们加载各种类型的媒体文件,包括JPEG、PNG等图片格式。图片加载完成后,可以通过`addChild`方法将其添加到舞台上显示。 2. ...
7. **优化和性能**:考虑到Flash内容可能影响网页加载速度,优化图片质量和大小,以及代码效率,是非常重要的。这包括压缩图片、使用高效的算法和避免不必要的计算。 8. **兼容性**:虽然现代浏览器和移动设备更...
加载器:源/头文件,包含与支持的内存(名称、大小……)和闪存加载器所需的功能相关的特定信息 项目:包含一个带有关联链接器文件的预配置项目 更多详情、使用方法,请下载后阅读README.md文件