`
Blackbaby
  • 浏览: 185014 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论
阅读更多

 1.  读取从swf传进来的参数

var first_name : String = FlexGlobals.topLevelApplication.parameters.firstname;

 

2.  FXG使用fill对图形本体进行上色,使用stroke对图形边框进行上色,而fill(填充)和stroke(画笔)有三种上色方法:
     fill — SolidColor(色块),RadialGradient(径向渐变),LinearGradient(线性渐变)。
     stroke — SolidColorStroke(实线),RadialGradientStroke(径向渐变),LinearGradientStroke(线性渐变)。

 

 3.  leverage remove events to enable component clean-up when  a component is removed,two events are dispatch:the parent dispatches  ElementExistance.ELEMENT_REMOVED and the component dispatches FlexEvent.REMOVED

 

4. //关掉滚动控件的垂直和水平滚动条(list控件)
     list.scroller.setStyle('horizontalScrollPolicy', 'off');
     list.scroller.setStyle('verticalScrollPolicy', 'off');
     //设置滚动控件的垂直滚动条的滚动样式
     list.scroller.verticalScrollBar.setStyle('smoothScrolling', true);//设置为平滑滚动
     list.scroller.verticalScrollBar.setStyle('repeatInterval', 500);//设置滚动到指定点的经过的时间

 5. 对象的深度克隆

public static function clone(object:Object):Object{
        var qClassName:String = getQualifiedClassName(object);
        var objectType:Class = getDefinitionByName(qClassName) as Class;
        registerClassAlias(qClassName, objectType);//恢复本来面目
     var copier : ByteArray = new ByteArray();
        copier.writeObject(object);
        copier.position = 0;
        return copier.readObject();
}

 6.replaceAll 方法

private function replaceAll( source:String, find:String, replacement:String ):String{
    return source.split( find ).join( replacement );     
} 

 7.layout   http://insideria.com/2009/05/flex-4-custom-layouts.html

 

package 
{
   import mx.core.ILayoutElement;
   
   import spark.layouts.supportClasses.LayoutBase;
   
   public class CircularLayout extends LayoutBase
   {
      override public function updateDisplayList(w:Number, h:Number):void
      {
           super.updateDisplayList(w, h);
             
           if (!target)
             return;
                 
           var layoutElement:ILayoutElement;
           var count:uint = target.numElements;
             
           var angle : Number = 360/count;
           var radius : Number = Math.min( target.width/2, target.height/2 ) - 25;
             
           var w2 : Number = target.width/2;
           var h2 : Number = target.height/2;
             
           for (var i:int = 0; i < count; i++)
           {
              layoutElement = target.getElementAt(i);
                    
              if (!layoutElement || !layoutElement.includeInLayout)
                continue;
            
              var radAngle : Number = (angle * i) * (Math.PI / 180) ;
            
              var _x : Number = Math.sin( radAngle );
              var _y : Number = - Math.cos( radAngle );
            
              layoutElement.setLayoutBoundsPosition( w2 + (_x * radius) - 25, h2 + (_y * radius) - 10 );
            } 
       }
    }
}

  8. save as a image

 

//AS部分代码
var bitmapData:BitmapData = new BitmapData(pic.width, pic.height);
 bitmapData.draw(pic,new Matrix());
var bitmap : Bitmap = new Bitmap(bitmapData);
var jpg:JPEGEncoder = new JPEGEncoder();
var ba:ByteArray = jpg.encode(bitmapData);
file.save(ba,"a.jpg");

//MXML部分代码
<mx:Canvas id="pic">
        <mx:Image source="@Embed(&apos;hello.jpg&apos;)"/>
        <mx:Label y="43" fontSize="48" id="myMessageLbl"  horizontalCenter="0" width="100%" textAlign="center"/>    
</mx:Canvas>

 

 9. 把visable和includeInLayout组合起来使用,这样可以让组件显示的时候就占位,不显示的时候就把位置让给人家。

 

  10. java端的java.math.BigDecimal via AMF 3 pass to actionscript 将被序列化成string

 

  11.DataGrid列排序不确定的情况下,可以这么做(闭包):

 

private static function sortFunc(field:String):Function{       
       return function(obj1:Object, obj2:Object):int{
               return ObjectUtil.numericCompare(obj1[field],obj2[field]);
       }
}

 

 12.播放一组动画

 

<s:transitions>
	<s:Transition fromState="closed" toState="open">
		<s:Sequence>
			<s:Resize target="{this}" duration="150" />
			<s:AddAction target="{contentGroup}" />
			<s:Fade target="{contentGroup}" alphaFrom="0" alphaTo="1" duration="150"/>
		</s:Sequence>
	</s:Transition>
	<s:Transition fromState="open" toState="closed">
		<s:Sequence>
			<s:Fade target="{contentGroup}" alphaFrom="1" alphaTo="0" duration="150" />
			<s:RemoveAction target="{contentGroup}" />
			<s:Resize target="{this}" duration="150" />
		</s:Sequence>
	</s:Transition>
</s:transitions>

 

  13.event.target是事件的派发者,event.currentTarget是事件的监听者

 

  14.动态生成DataGrid组件的表头。

  

private function setCols():void {
	var cols:Array = dg.columns;
	for(var i:uint=0;i<dbField.length;i++){
		var dgCol:DataGridColumn = new DataGridColumn();
		dg.width+=50
		dgCol.dataField = dbField[i];
		dgCol.headerText =dbField[i];
		cols.push(dgCol);
	}
	dg.columns = cols;
}

 

    15.默认情况DataGrid组件的DataGridColumn的dataField属性不支持形如a.b.c的嵌套数据,但是可以给DataGridColumn指定labelFunction来达到目的。

  

private function neast_labelFunc(row:Object, col:DataGridColumn):String {
	var fields:Array;
	var label:String;
	var dataFieldSplit:String = col.dataField;
	var currentData:Object = row;
	if(dataFieldSplit.indexOf(".") != -1){ 
		fields = dataFieldSplit.split(".");
		for each(var f:String in fields)
		currentData = currentData[f];
		if(currentData is String)
			return String(currentData);
	}else{
		if(dataFieldSplit != "")
			currentData = currentData[dataFieldSplit];
	}
	try{
		label = currentData.toString();
	}catch(e:Error){
		label = super.itemToLabel(row);
	}
	return label;
}

      16.当我们侦听itemClick事件的时候,将会接收到一个ListEvent事件对象,对象里分别有所点击单元格的列索引与列索  引,  我们就从这两个数据进行其它数据的获取... (ps:下边提到的e为ListEvent事件对象..)
     1.所点击的列的表头
     (e.target as DataGrid).columns[e.columnIndex].headerText
     2.点击的列索引
     e.columnIndex
     3.点击的行索引
     e.rowIndex
     4.点击的整行的数据(选中的数据)
     (e.target as DataGrid).selectedItem
     5.选中的单元格的数据
     (e.target as DataGrid).selectedItem[(e.target as DataGrid).columns[e.columnIndex].dataField]

 

     17.ActionScript调用JavaScript函数

    

ExternalInterface.call("parent.页面js函数名","参数");

 

     18.从itemrender发送事件给list

   

     owner.dispatchEvent(事件对象);

 

       19.Flash 应用的右键菜单

   

private function initContextMenu():void{
	const copyMenu:ContextMenuItem = new ContextMenuItem("Copy Text", true);
	copyMenu.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, copyText);
	contextMenu = new flash.ui.ContextMenu();
	contextMenu.hideBuiltInItems();
	contextMenu.customItems = [copyMenu];
}
		
private function copyText(event:ContextMenuEvent):void{
	Clipboard.generalClipboard.setData(ClipboardFormats.TEXT_FORMAT, text);
}

 

       20 . Flex中label换行

   

在as中赋值 label.text="aaaaa \r\n bbbbbbb"
在mxml中赋值 text="aaaaaa &#13; bbbbbbb"

       

       21. parsley 日志能功

   

<fx:Declarations> 
      <!-- Place non-visual elements (e.g., services, value objects) here --> 
      <s:TraceTarget 
            includeCategory="true" 
            includeLevel="true" 
            includeTime="true" 
            level="{LogEventLevel.DEBUG}" 
            > 
            <s:filters> 
               <fx:String>org.spicefactory.parsley.*</fx:String> 
            </s:filters> 
         </s:TraceTarget> 
       
      <sf:ContextBuilder config="{ConfigFile}"></sf:ContextBuilder> 
</fx:Declarations>

 

    22.  Flex4:ViewStack与浏览器历史记录(HistoryManager和BrowserManager(flex4推荐))

   

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
                           xmlns:s="library://ns.adobe.com/flex/spark"
                           xmlns:mx="library://ns.adobe.com/flex/mx" >
        <fx:Script>
                <![CDATA[
                        public var historyManagementEnabled : Boolean = true;//flex4要加上这句
                ]]>
        </fx:Script>
        <s:layout>
                <s:VerticalLayout horizontalAlign="center"/>
        </s:layout>
        <s:TabBar dataProvider="{stack}"/>
        <mx:ViewStack historyManagementEnabled="true" id="stack" height="100%" width="100%">
                <s:NavigatorContent label="First page">
                        <s:HGroup horizontalAlign="center" verticalAlign="middle" height="100%" width="100%">
                                <s:Label text="This is the first page" verticalAlign="middle"/>
                        </s:HGroup>
                </s:NavigatorContent>
                <s:NavigatorContent label="Second page">
                        <s:HGroup horizontalAlign="center" verticalAlign="middle" height="100%" width="100%">
                                <s:Label text="This is the second page"/>
                        </s:HGroup>
                </s:NavigatorContent>
        </mx:ViewStack>
</s:Application>

 

分享到:
评论

相关推荐

    Flex中的小技巧备忘

    ### Flex中的小技巧备忘 在Flex开发过程中,掌握一些实用的小技巧可以帮助开发者更高效地完成项目,并提高代码质量。本文将详细介绍四种与Flex相关的实用技巧。 #### 技巧一:复制文本到剪贴板 在某些场景下,...

    flex测试简单分析案例页面

    flex测试页,简单测试flex相关属性,做个备忘,以便日后使用。

    flex 安全沙箱问题备忘

    Flex安全沙箱是Adobe Flex应用程序在运行时用以确保安全的机制,其通过将应用程序限制在特定的运行环境内,防止恶意软件和代码对用户系统造成损害。在Flex中,沙箱主要分为三类:本地沙箱、本地信任沙箱、远程沙箱。...

    备忘录.zip

    开发者可以通过选择器(如class、id)、盒模型、布局方式(如flex布局)等,来实现美观且响应式的界面设计。 6. **网络请求**:如果备忘录功能需要云端同步或备份,那么开发者可能会用到微信小程序提供的网络接口,...

    日历+备忘+所在城市天气+IP地址的AIR桌面应用

    用flex开发的桌面应用,其中包含日历功能、备忘录功能、备忘录提示、所在地城市名称和IP地址自动解析、获取天气预报等功能。由于这个是无服务器的纯客服端,所有的城市地址和天气信息的数据信息都是通过解析网页获得...

    harmonyOS-一个简单的备忘录APP,鸿蒙平台.zip

    在HarmonyOS中,开发者可以使用Flex Layout或者CSS Grid布局来实现灵活的界面布局。此外,HarmonyOS提供了丰富的组件库,如文本输入框、按钮、列表视图等,用于构建用户界面。通过XML文件,开发者可以定义界面结构,...

    微信小程序推荐demo:备忘录:适用1028版本.rar

    WXSS类似于CSS,提供了诸如定位(positioning)、布局(flex布局)、尺寸(width, height)和颜色(color)等样式控制。备忘录应用可能涉及到列表展示,需要用到流式布局或者网格布局来组织备忘条目。 6. **事件...

    (FLEX)Advanced ActionScript 3 with Design Patterns - 2006 (Adobe)

    - **(FLEX)Advanced ActionScript 3 with Design Patterns - 2006 (Adobe)** 本书标题明确了其主要内容:针对Flex平台的高级ActionScript 3编程,并结合了设计模式的应用。出版年份(2006)表明了此书首次面世的...

    flex 简单画图板的实现细节

    实现了简单的画图板功能,初学者很有用的哦

    flexbox:CSS库,可以更轻松地使用flex box

    Flexbox + CSS变量= :red_heart: ...快速备忘单 . flex [. inline . auto . column . reverse . wrap . center . fullsize . gaps ] [. justify- (flex - start|center|flex - end|space - aroun

    Java-Deserialization-Cheat-Sheet:关于Java反序列化漏洞的备忘单

    Apache Flex BlazeDS(AMF) 火烈鸟AMF(AMF) GraniteDS(AMF) Java WebORB(AMF) SnakeYAML(YAML) jYAML(YAML) YamlBeans(YAML) “安全”反序列化 Java本机序列化(二进制) 概述 Java反序列化...

    flexbox:您可以在其中与许多人互动的游乐场更改了它们的某些CSS属性,以查看它们在flex容器中的行为

    提到的学习资源,即“flexbox游乐场”仓库,可能包含一个交互式的flexbox指南或者备忘单。这种交互式的练习方式可以帮助开发者直观地看到不同属性的改变如何影响布局,从而加深理解。 使用此类工具,你可以自由调整...

    symfony备忘单:Symfony备忘单

    **Symfony备忘单** Symfony是一款基于PHP的开源Web应用框架,它遵循模型-视图-控制器(MVC)架构模式,旨在提高开发效率和代码质量。Symfony提供了许多强大的工具和组件,如路由、依赖注入、表单处理、HTTP缓存等,...

    CSS_Cheat_Sheet:动态CSS备忘单

    **CSS_Cheat_Sheet: 动态CSS备忘单** CSS(层叠样式表)是网页设计中的核心技术,用于控制页面布局和样式。这个“CSS Cheat Sheet”专注于两个现代CSS布局技术:Flexbox和Grid。它们为创建响应式、动态且易于管理的...

    VSCode-Angular-TypeScript-Snippets:Angular 5的Visual Studio Code TypeScript片段(TypeScript,Html,Angular材质,Flex布局,ngRx,RxJS和测试)

    Angular Flex布局片段 ngrx- Angular NgRx片段 ngxs- Angular Ngxs代码段 m- 角材料设计片段 接收 用于TypeScript和JavaScript的RxJS代码段 sw- 服务人员摘要 t- 测试片段 电子 测试期望片段 wa 渐进式Web...

    Ionic Css-Prop-Cheat Sheet:Ionic Css属性备忘单

    《Ionic CSS属性备忘单详解》 在移动应用开发领域,Ionic框架凭借其强大的功能和跨平台兼容性,成为开发者们的热门选择。特别是在构建响应式、高性能的混合应用程序时,理解并熟练运用Ionic的CSS属性至关重要。本文...

    Java 反序列化漏洞速查表.zip

    Java 反序列化备忘单这是为渗透测试人员和研究人员提供的有关各种 Java(JVM)序列化库中的反序列化漏洞的备忘单。请在推文中使用#javadeser标签。目录Java 本机序列化(二进制)概述主要演讲、演讲和文档有效载荷...

    备忘单

    - 弹性布局(Flexbox):使用`display: flex;`,提供了一种更简便的单轴布局方式。 - 网格布局(Grid):使用`display: grid;`,支持两轴或多轴的复杂布局。 4. **响应式设计** - `@media`查询:根据设备特性和...

    50个微信小程序源码.zip

    FlexLayout布局 gank HIapp IT-EBOOK leantodu LOL战绩查询 movecss效果 Railay:整体框架 redux绑定 TCP,IP长连接 todo list v2ex 东航订机票 二维码生成器 仿微信DEMO 仿找事吧 仿网易云音乐 会议精灵 侧滑布局 分...

    最火推荐130个毕业设计微信小程序源码下载.zip

    FlexLayout布局 gank HIapp IT-EBOOK leantodu list.txt LOL战绩查询 movecss效果 Railay:整体框架 redux绑定 TCP,IP长连接 todo list v2ex 一个(仿) 一元夺宝主页设计 万年历 下拉刷新,tab切换 ...

Global site tag (gtag.js) - Google Analytics