`
bootong
  • 浏览: 11665 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Flex动态设置Button中的icon指向外网图片源

    博客分类:
  • flex
阅读更多
package
{
	import flash.display.BitmapData;  
	import flash.display.Loader;   
	import flash.display.LoaderInfo;  
	import flash.events.Event;   
	import flash.geom.Matrix;   
	import flash.net.URLRequest;   
	import flash.system.LoaderContext;   
	import flash.utils.Dictionary;      
	import mx.containers.accordionClasses.AccordionHeader;   
	import mx.controls.tabBarClasses.Tab;    
	import mx.core.BitmapAsset;   
	import mx.core.UIComponent;  
	public class ButtonBackGroudImage extends BitmapAsset{     
		private static var dictionary:Dictionary;       
		public static function getClass( target:UIComponent, source:String, width:Number = NaN, height:Number = NaN ):Class         { 
			  if(!dictionary){             
				   dictionary = new Dictionary(false);        
			  }         
			  //if(source is String)          
			  //{               
			 	var loader:Loader = new Loader();       
				loader.load(new URLRequest(source as String), new LoaderContext(true)); 
				//source = loader;           
				//}            
				dictionary[target] = { source:loader, width:width, height:height };   
				return ButtonBackGroudImage;       
		}        
		public function ButtonBackGroudImage():void{        
			addEventListener(Event.ADDED, addedHandler, false, 0, true)     
		}        
		private function addedHandler(event:Event):void{   
			if(parent){            
				if(parent is AccordionHeader){       
					var header:AccordionHeader = parent as AccordionHeader;    
					getData(header.data);             
				} else if(parent is Tab){       
					var tab:Tab = parent as Tab;      
					getData(tab.data);              
				} else{             
					getData(parent);           
				}       
			}      
		}      
		private function getData(object:Object):void{     
			var data:Object = dictionary[object];     
			if(data) {            
				var source:Object = data.source;        
				if(data.width > 0 && data.height > 0){   
					bitmapData = new BitmapData(data.width, data.height, true, 0x00FFFFFF);  
				}                
				if(source is Loader){      
					var loader:Loader = source as Loader; 
					if(!loader.content) {             
						loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler, false, 0, true);   
					}else{            
						displayLoader(loader);    
					}          
				}          
			}       
		}       
		private function displayLoader( loader:Loader ):void{      
			if(!bitmapData){        
				bitmapData = new BitmapData(loader.content.width, loader.content.height, true, 0x00FFFFFF);    
			}         
			bitmapData.draw(loader, new Matrix(bitmapData.width/loader.width, 0, 0, bitmapData.height/loader.height, 0, 0));  
			if(parent is UIComponent){         
				var component:UIComponent = parent as UIComponent;   
				component.invalidateSize();       
			}       
		}       
		private function completeHandler(event:Event):void{    
			if(event && event.target && event.target is LoaderInfo){       
				displayLoader(event.target.loader as Loader);       
			}    
		}  
	}
}


<?xml version="1.0" encoding="utf-8"?><mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">    <mx:Script>    <![CDATA[        import com.IconUtility;        public function open():void        {             navigateToURL(new URLRequest("http://hi.baidu.com/woaidelphi/"), "_blank");         }       ]]>    </mx:Script>    <mx:Button id="button" label="Button"         icon="{IconUtility.getClass(button, 'http://hiphotos.baidu.com/woaidelphi/abpic/item/ace9cd3836b88206b9998fe9.jpg')}" x="488" y="233" width="278" height="107"        click="open()"/></mx:Application>
分享到:
评论

相关推荐

    Flex 动态加载 Image 和 Icon 解决方案

    本文将深入探讨如何在 Flex 中动态加载 Image 和 Icon,这对于创建响应式和灵活的应用程序至关重要。动态加载资源可以显著提高应用程序的性能,减少启动时间和内存消耗。 在 Flex 中,我们可以使用 `Loader` 类来...

    flex加载动态图片

    flexBulider页面加载动态图片的显示

    Flex Android项目 设置Button的背景色

    在Flex Android项目中,我们经常会遇到需要自定义控件外观的需求,尤其是对于Button(按钮)这种常见的交互元素,设置背景色是提升用户界面美观度和交互体验的重要手段。本篇文章将详细讲解如何在Flex Android项目...

    Flex动态创建DataGrid设置图片

    本教程主要聚焦于如何在Flex中动态创建DataGrid,并向其中添加图片,这在创建交互式、富媒体应用时非常有用。通过以下两种方法,你可以实现这个功能。 ### 方法一:使用ItemRenderer 1. **定义ItemRenderer**: ...

    flex重载Button 文本自动换行

    在Flex布局中,Button组件通常用于显示简单的单行文本按钮。然而,在某些场景下,我们可能需要Button的文本内容能够自动换行,以适应不同长度的文本或保持界面的整洁。本文将详细介绍如何重载Flex的Button,实现文本...

    Flex里用IconUtility动态加载Icon

    5. **应用到组件**:加载和处理后的图标可以直接应用于Flex组件的皮肤,如设置Button的icon属性,或者自定义组件的外观。 在实际应用中,我们可以按照以下步骤使用`IconUtility`: 1. 导入必要的库:首先,确保...

    flex button的label字体垂直显示

    在Flex编程中,我们经常会遇到需要自定义组件样式的需求,比如让`Button`的`label`文字垂直显示。这个主题涉及到Flex布局、组件定制以及文本渲染等多个知识点。下面将详细阐述如何实现`Button`的`label`字体垂直显示...

    Flex MenuBar从数据库中动态加载图片

    本教程将深入探讨如何从数据库中动态加载图片到`MenuBar`,以创建更加丰富的用户界面。这一过程涉及到数据绑定、自定义渲染器以及与后端数据库的交互。 首先,我们需要了解`MenuBar`的基本用法。`MenuBar`是基于...

    FLEX 背景图片设置

    在本文中,我们将深入探讨如何在FLEX应用程序中设置背景图片,这是一项非常实用的技巧,可以帮助你提升应用的视觉效果。FLEX是一种基于ActionScript 3(AS3)的开发框架,用于创建富互联网应用程序(RIA)。背景图片...

    flex tree 修改icon方法

    综上所述,修改Flex Tree的icon涉及到创建自定义渲染器、数据绑定、根据数据源动态设置图标等步骤。理解这些概念和技巧对于构建具有个性化视觉效果的Flex应用程序至关重要。在实践中,需要注意代码的可维护性和性能...

    FLEX4按钮状态切换背景

    或者在ActionScript代码中动态设置: ```actionscript myButton.setStyle("styleName", "myButton"); ``` 6. 压缩包资源: 提供的“FLEX4按钮状态切换背景”压缩包很可能包含了一系列不同状态的背景图片(如`up....

    Flex相册 Flex图片

    Flex相册 Flex图片

    Flex垂直button

    在本文中,我们将深入探讨如何在Flex环境中创建一个垂直排列的按钮(Flex Vertical Button)以及一个包含垂直标签的TabNavigator组件。Flex是一个基于ActionScript 3.0的开放源代码框架,用于构建富互联网应用程序...

    flex图片查看器源码

    3. **ActionScript**: Flex中的编程语言,基于ECMAScript,用于处理动态行为和业务逻辑。在图片查看器中,ActionScript可能用于处理图片加载、缩放、保存等操作。 4. **图片缩放**: 源码包含了图片缩放功能,这通常...

    FLEX教程码源集合

    **FLEX教程码源集合** FLEX,全称为Flexible Application Framework,是由Adobe公司推出的一种用于构建富互联网应用程序(RIA)的开发平台。FLEX以其强大的数据可视化能力、丰富的用户界面组件以及与后端服务器的...

    flex 编写的计算器 Button动态实现

    用flex编写的一个计算器,0-9数字按钮通过as 动态实现 直接讲文件导入flash builder就可以使用

    flex例子.flex源程序

    这个"flex例子.flex源程序"很显然是一个Flex开发的学习资源,它包含了一个或多个示例项目,用于帮助开发者理解和掌握Flex编程的基本概念和实践。 Flex的主要组件包括MXML和ActionScript,它们是构建Flex应用的两大...

    flex 两个图片播放小程序

    在这个“flex 两个图片播放小程序”项目中,我们可以看到它被用来创建一个图片浏览应用,支持图片的放大和缩小功能,提供了用户友好的交互体验。接下来,我们将深入探讨Flex在图片浏览中的应用及其关键技术。 首先...

    精通FLEX源代码08

    《精通FLEX源代码08》这一资源主要聚焦于深入理解和掌握Adobe Flex的源代码,Flex是一种基于ActionScript和MXML的开源框架,用于构建富互联网应用程序(RIA)。本资源可能包含一系列章节或实例,旨在帮助开发者提升...

    Flex动态爱墙(源代码)

    Flex动态爱墙是一款基于Adobe Flex 3.0技术开发的互动应用,主要功能是创建一个虚拟的电子墙,用户可以在墙上发布信息,实现信息的动态展示和交互。这个源代码可以为开发者提供学习和研究Flex编程、交互设计以及数据...

Global site tag (gtag.js) - Google Analytics