Flex 常用技巧

合集下载

flex 的用法

flex 的用法

flex 的用法“flex”的用法“flex”是一种用于实现响应式布局的CSS工具。

它是“Flexible Box Layout”的缩写,也称为flexbox。

flexbox提供了一种灵活的方式来布置、对齐和分布元素,以适应不同的屏幕尺寸和设备类型。

在本文中,我们将一步一步回答以下关于“flex”的用法的问题:1. 什么是“flex”?2. 如何使用"flex"创建一个简单的布局?3. 如何在flex容器和flex项目中设置属性?4. 如何进行flex项目的对齐和分布?5. 如何在媒体查询中使用“flex”?6. 一些常见的“flex”应用示例。

7. “flex”的浏览器兼容性。

1. 什么是“flex”?“flex”是一种CSS布局技术,用于创建响应式布局。

它基于flexbox模型,其中包含一个flex容器和flex项目。

flex容器是一个包含flex项目的容器,而flex项目则是flex容器中的子元素。

2. 如何使用"flex"创建一个简单的布局?要创建一个简单的flex布局,首先需要创建一个flex容器。

我们使用`display: flex;`来将一个元素设置为flex容器。

接下来,我们可以使用其他属性来设置容器的方向、换行、对齐等属性。

css.container {display: flex;flex-direction: row;justify-content: space-between;align-items: center;}在上面的示例中,我们将一个元素的类名设置为“container”,然后使用`display: flex;`将其设置为flex容器。

接下来,我们使用`flex-direction: row;`设置容器内项目的排列方向为水平方向,使用`justify-content: space-between;`设置项目之间的间距,使用`align-items: center;`设置项目在容器中的垂直方向上的对齐方式。

css中flex用法

css中flex用法

css中flex用法Fle某是CSS3中引入的一个布局模型,其主要作用是在不同的屏幕尺寸和设备上,实现更具灵活性、适应性和可维护性的页面布局。

使用fle某布局可以让开发人员更轻松地组织页面结构,并且更方便地对页面元素进行排列和定位。

Fle某布局提供了很多优势,比如:1.简单易用:只需要通过设置容器和项目的一些属性,就可以快速实现自适应、响应式的页面布局。

2. 灵活性:fle某布局非常灵活,可以根据不同的屏幕尺寸和设备进行自适应和响应式的布局。

3. 可维护性:使用fle某布局可以更方便地进行代码维护和重构,同时也更加易于调试和调整页面布局。

接下来,我们将介绍一些常用的fle某属性及其使用方法。

1. fle某-direction该属性定义fle某容器的主轴方向,可取值为row、column、row-reverse和column-reverse,分别对应水平、垂直、水平逆序和垂直逆序的布局方式。

2. justify-content该属性定义了在主轴上如何对齐fle某项目,默认值为fle某-start。

可取值包括fle某-start、fle某-end、center、space-between、space-around和space-evenly。

3. align-items该属性定义了在交叉轴上如何对齐fle某项目,默认值为stretch。

可取值包括fle某-start、fle某-end、center、stretch和baseline。

4. align-content该属性定义了在交叉轴上如何对齐fle某项目的行或列,默认值为stretch。

可取值包括fle某-start、fle某-end、center、stretch、space-between和space-around。

5. fle某该属性定义了fle某项目所占据的比例,即fle某-grow、fle某-shrink和fle某-basis的缩写。

6. order该属性定义了fle某项目在容器中的顺序,数值越小越靠前。

flex常用快捷键

flex常用快捷键

flex常用快捷键’shift’ + ‘tab’:左移代码; [方便]”tab’:右移代码; [方便]‘alt’ + ‘/’:代码提示,导入类; 或者自己在key里找到 content assist自己设置‘ctrl’ + ‘空格’:同上; 如果与输入法切换快捷键相同需要将输入法的快捷键更改成其他组合[方便]‘ctrl’ + ‘o’:快速查找以及指向变量或函数或者mxml组件的id;‘ctrl’ + ‘d’:删除一行代码; [用它你会上瘾的]‘ctrl’ + ‘m’:在最大化与还原之间切换获得焦点的窗口; 很常用的啦, 非常方便, 另外双击窗口也可以实现同样的‘ctrl’ + ‘e’:快速查找以及指向打开的文件; [在打开的文件很多时尤其实用]‘ctrl’ + ‘~’:代码和设计模式切换;‘ctrl’ + ‘/’:注釋一行ActionScript代碼[很常用]‘ctrl’ + ‘?’:注释或解除注释选中ActionScript代碼[方便]‘ctrl’ + ’shift’ + ‘c’:添加<!––>或/* */‘ctrl’ + ’shift’ + ‘d’:添加<![CDATA[ ]]>‘ctrl’ + ’shift’ + ‘f’:在工程范围内查找,如*.mxml、*Act.as 等等[方便]‘ctrl’ + 鼠標左鍵: 快速指向所點擊類文件[方便]补充一些:Ctrl-F11: 执行(Run)F11: 除错(Debug)Ctrl-Alt-Down: 重复目前所在编辑列(Repeat current line )Alt-Up: 移动本列,或选择列往上移动(Move line (or selection) up )Alt-Down: 移动本列,或选择列下往移动(Move line (or selection) down )Ctrl-Click: 移至定义区(Go to definition (also F3) )Ctrl-D: 删除本列(Delete line )Ctrl-Up: 捲轴向上(Scroll up )Ctrl-Down: 捲轴向下(Scroll Down )Shift+F2 弹出帮助窗体,显示选中标签的上下文帮助F1 在IDE内显示上下文帮助F3 显示当前选中标签的类定义CTRL+0 在代码视窗显示大纲Ctrl+Shift+T:打开Class搜索框Ctrl+M:最大化/恢复当前编辑框flashdevelop快捷键ctrl+shift+1 自动完成代码,这个功能是FD代码提示最有用一个,他可以用来自动生成GET、SET,自动申明变量、方法,自动导入类等ctrl+b 范例代码 for、if 等代码段的模板,只要按下这个键就可生成ctrl+shift+k 颜色代码拾取器ctrl+shift+b 注释点选代码段代码ctrl+shift+f 代码收起ctrl+shift+a 代码全部收起ctrl+shift+e 代码全部展开ctrl+shift+n 复制代码到一个新文件ctrl+shift+i 生成了uidF3 查找 = ctrl+fF4 跳转到指定方法或类或变量被定义的地方shift+f4 跳回到之前所有的地方ctrl+\ 移到下个大写或标点或空格后ctrl+] 移动下个空行后。

flex——弹性布局的属性及使用

flex——弹性布局的属性及使用

1.父元素id为flex,子元素class为items#flex {width: 100%;height: 100%;display: flex;padding:15px;padding-top: 200px;border: 1px solid red;box-sizing: border-box;}#flex .items {width: 18%;border: 1px solid blue;height: 200px;}效果如下图2.flex-direction 在flex容器里的所有的block元素的流动方向row 默认,从左到右column 从上到下row-reverse 从右到左column-reverse 从上到下父元素添加flex-direction: row;父元素添加flex-direction:row-reverse父元素添加flex-direction:column父元素添加flex-direction:column-reverse3.flex-wrap 控制如果当前行的位置不足时,是否换行,默认是不换行,会一直在一行中挤压,会改变在该行元素的宽度,将其排在一行之中nowrap 不换行wrap 换行,空间不足,就向下另起一行。

wrap-reverse 换行,与wrap不同的是,这个是向当前行的上面另起一行。

注意:flex-direction和flex-wrap经常一起使用所有有个缩写属性flex-flow:flex-direction flex-wrap。

父元素添加flex-flow:row nowrap;父元素添加flex-flow:row wrap;父元素添加flex-flow:row wrap-reverse;4.justify-content主轴的对齐方式,元素在容器中的对齐方式,与左对齐,右对齐,居中对齐类似取值:flex-start 靠近主轴的开始方向,如果从左到右就靠左,相反就靠右。

flex 单元 多行单元上下间距

flex 单元 多行单元上下间距

当我们在网页开发或者移动端布局中使用flexbox布局时,经常会遇到需要设置单元的上下间距的情况。

特别是在多行单元的布局中,我们希望每一行内的单元之间有一定的间距,同时不同行之间也要有一定的间距。

本文将深入探讨在flex布局中如何设置多行单元的上下间距。

1. 理解flex布局在开始讨论多行单元的上下间距之前,我们需要先理解flex布局是如何工作的。

Flex布局是一种新型的盒子模型,它可以让容器内的项目能够自动分布空间,以填充容器的剩余空间或收缩到适应容器的大小。

在flex布局中,我们可以通过设置容器和项目的属性来实现各种布局效果。

2. 设置多行单元的上下间距在flex布局中,要实现多行单元的上下间距,可以通过设置项目的margin属性来实现。

我们可以为每一个项目设置相应的margin值来控制它们之间的间距。

我们也可以为容器设置justify-content属性来控制项目在主轴上的对齐方式,从而间接地影响项目之间的间距。

3. 使用自动间距技巧除了手动设置每个项目的margin值之外,我们还可以使用一些自动间距的技巧来简化布局代码。

我们可以为容器设置margin-bottom属性来为每一行的最后一个项目添加下间距,从而实现多行单元的间距效果。

这种方法可以减少手动调整margin值的工作量,同时也能够确保不同行之间的间距一致。

4. 灵活运用flex属性除了margin属性之外,我们还可以灵活运用flex属性来实现多行单元的上下间距。

通过设置项目的flex-grow、flex-shrink和flex-basis 属性,我们可以让项目在填充容器空间时具有一定的灵活性,从而间接地影响它们之间的间距。

这种方法可以使布局更加灵活和适应性更强。

总结:在flex布局中实现多行单元的上下间距,我们可以通过手动设置margin值、使用自动间距技巧以及灵活运用flex属性来实现。

在实际项目中,我们需要根据具体的设计需求和布局结构来选择合适的方法。

Flex 常用技巧

Flex 常用技巧

Flex 常用技巧有关flex的用法和优化,感觉还是很有用的。

在这里把它门记下来,防止以后忘了。

一、System.setClipboard("给系统剪切板赋值"); 用于给系统的剪切板赋值。

二、var objectid = ExternalInterface.objectID; //在Internet Explorer 中返回object 标签的id 属性,或者在Netscape 中返回embed 标签的name 属性。

三、如果要创建一个自定义组件,你需要重写UIComponent 类的某些方法,最少需要重写如下方法(按先后顺序):构造函数, createChildren(), commitProperties(), measure(), layoutChrome(), updateDisplayList() 。

四、改变输出swf的尺度,背景颜色或帧频在”Navigator”窗框里右键你的项目>选中”Properties”>选中”ActionScript Compiler”>在”Additional compiler arguments”里输入你所需要的命令如想改变背景颜色,请输入: -default-background-color 0xffffff五、是数字但不是有效数字问题var quantity:Number = 15 - “rabbits”;trace(typeof quantity); //显示: “number” , 但它是NaN (not a number)trace(quantity is Number); //truetrace(quantity != NaN); //false//使用isNaN()函数检测:isNaN(quantity); //true//检测变量是否内含有效数字:!isNaN(quantity); //false六、Timer类注意事项不要认为Timer可以极其准确;使用Timer时间间隔不要低于10毫秒.七、for…in与for each…in的区别与for…in循环不同的是,for each…in循环中的迭代变量包含属性所保存的值,而不包含属性的名称(或主键,索引)八、隐藏Flash Player的右键菜单stage.showDefaultContextMenu = false;九、让其它域的.swf访问本域的.swf在本域的.swf文件里加上:flash.system.Security.allowDomain()或者使用安全策略文件”crossdomain.xml”.在Flash 8以前,这个文件必须放在.swf所在域的根目录,现在,你可以使用flash.system.Security.loadPolicyFile(),指定安全策略文件所在的位置.拒绝任何域的做法是在<cross-domain-policy>标签内什么也不填,安全策略文件也支持通用字符“*”:<?xml version=”1.0″?><!–/crossdomain.xml–><cross-domain-policy><allow-access-from domain=”” /><allow-access-from domain=”*” /><allow-access-from domain=”210.38.196.48″ /><allow-access-from domain=”*” /></cross-domain-policy>十、把数字取至最近的小数点位,即指定精确度1. 决定你要取的数字的小数点位数:例如,如果你想把90.337取成90.34,就表示你要取到两位小数点位,也就是说你想取至最近的0.01;2. 让输入值除以步骤1所选的数字(此例为0.01);3. 使用Math.round()把步骤2所计得的值取成最近的整数;4. 把步骤3所得的结果乘以步骤2用于除法的那个值.例如,要把90.337取成两个小数点位数,可以使用:trace(Math.round(90.337/0.01)*0.01); //输出:90.34十一、把数字取成一个整数的最接近倍数值例1,这样会把92.5取成5的最近倍数值:trace(Math.round(92.5/5)*5); //输出:95例2,这样会把92.5取成10的最近倍数值:trace(Math.round(92.5/10)*10); //输出:90十二、在指定数值范围内获得随机数//可取范围:[min, max]private function randRange(min:Number, max:Number):Number {var randomNum:Number = Math.floor(Math.random() * (max - min + 1)) + min; return randomNum;}十三、把数组转成字符串使用String.join()方法:var myArr:Array = new Array(”one”, “two”, “three”);var myS tr:String = myArr.join(” and “);trace(myArr); //输出: one,two,threetrace(myStr); //输出: one and two and three十四、在数组中获取最小或最大值var scores:Array = [10, 4, 15, 8];scores.sort(Array.NUMERIC);trace(”Minimum: ” + scores[0]);trace(”Maximum: ” + scores[scor es.length - 1]);十五、使用for … in语句读取关联数组元素var myObject:Object = new Object(); = “YoungBoy”;myObject.age = 20;for(var i:String in myObject) {trace(i + “: ” + myObject[i]);}//输出: name: YoungBoy// age: 20注意: for … in循环不会显示对象所有的内建属性.例如,循环会显示执行期间新增的特殊属性,但是,不会列出内建对象的方法,即使都是储存在对象属性内。

flex排列方式

flex排列方式flex排列方式是CSS3中新增的特性,可以帮助我们更精准地控制元素的布局。

在使用flex布局时,我们首先需要将父容器设置为display:flex,这样其内部的子元素就可以按照我们设定的排列方式进行布局。

单行排列1.主轴方向:横向排列在横向排列的情况下,我们可以通过设置justify-content属性来控制子元素在主轴方向上的排列方式,属性值包括:- flex-start:子元素在主轴起点上对齐- flex-end:子元素在主轴终点上对齐- center:子元素在主轴居中对齐- space-between:子元素在主轴上均匀分布,且两端不留空隙- space-around:子元素在主轴上均匀分布,且两端留有空隙2.主轴方向:纵向排列在纵向排列的情况下,我们可以通过设置align-items属性来控制子元素在交叉轴方向上的排列方式,属性值包括:- flex-start:子元素在交叉轴起点上对齐- flex-end:子元素在交叉轴终点上对齐- center:子元素在交叉轴居中对齐- baseline:子元素在基线上对齐- stretch:子元素在交叉轴方向上拉伸填满整个父容器多行排列在多行排列的情况下,我们可以通过设置flex-wrap属性来控制子元素的排列方式,属性值包括:- nowrap:子元素不换行,会被挤压在一行内- wrap:子元素会自动换行- wrap-reverse:子元素会自动换行,但是会按照相反的方向排列在多行排列的情况下,我们还可以通过设置align-content属性来控制所有子元素在交叉轴方向上的排列方式,属性值与justify-content相同。

总结flex布局是CSS3中一项非常实用的功能,能够帮助我们更灵活地控制元素的排列方式。

在使用flex布局时,我们需要将父容器设置为display:flex,并根据实际需求设置justify-content、align-items、flex-wrap、align-content等属性,从而达到更优美、精准的排列效果。

个人总结flex各种用法

个人总结flex各种用法个人总结flex各种用法转自获得屏幕的分辨率var x:Number=Capabilities.screenResolutionX;var y:Number=Capabilities.screenResolutionY;Alert.show("x="+x+"y="+y);第二种方法Alert.show(stage.fullScreenWidth+"=="+stage.fullScreenHe ight);//获得stage(工作区)的宽、高Alert.show(stage.stageWidth+"=="+stage.stageHeight);//读取xml文件private function readxml2():void{var urlrequest:URLRequest=new URLRequest("file/stu.xml");var urlloader:URLLoader=new URLLoader(urlrequest);urlloader.addEventListener(PLETE,completehandl er);}private function completehandler(event:Event):void{var xml:XML=new XML(event.target.data);//var arr:Array=new Array(xml);this.dg.dataProvider=xml.children();this.tree.dataProvider=xml;this.cb.dataProvider=xml.children();//this.hlist.dataProvider=xml.children();}//flex获得系统路径var add:String=ExternalInterface.call("window.location.href.toString",1);Alert.show(add);//背景颜色不断变化private function changeBG():void{var mytime:Timer=new Timer(2000);mytime.addEventListener(TimerEvent.TIMER,changHandle);mytime.start();}private function changHandle(e:TimerEvent):void{this.setStyle("backgroundColor",Math.random()*0xffffff);}//获得键盘按下的键的值public function getCode():void{btn.addEventListener(KeyboardEvent.KEY_DOWN,keyHandle );}function keyHandle(event:KeyboardEvent):void{Alert.show("你按下了:"+String.fromCharCode(event.charCode));}//动态加载不同界面import commont.Two;import commont.One;var t:Two=new Two();var o:One=new One();private function showOne():void{tw.removeAllChildren();tw.addChild(o);}private function showTwo():void{tw.removeAllChildren();tw.addChild(t);}//flex绑定图片[Bindable][Embed(source="img/1.jpg")]public var phone1:Class;//日期中文标题mx:DateChooser id="dtchoose"x="219"y="83"dayNames="[日,一,二,三,四,五,六]"monthNames="[一月,二月,三月,四月,五月,六月,七月,八月,九月,十月,十一月,十二月]"change="disDate()"minYear="2007"/ //选择日期dateChoose function disDate():void{txtDate.text=fm.format(dtchoose.selectedDate.toLocaleDate String());}//flex中添加html标记mx:TextArea id="text"creationComplete="init()"width="248"height="59"mx:htmlText![CDATA[input type='file'/a href="你哈!/a]]/mx:htmlT ext/mx:TextArea//flex带下划线的链接this.lblLink.htmlText="a href='target='_blank'新闻/a";mx:Labelx="524"y="393"text="Hellollll"id="lblLink"rollOver="focusMana ger.deactivate()"color="blue"opaqueBackground="#ffffff"rollOut="focusManager.activate()"styleName="Label"creationComplete="link()"/.Label{text-roll-over-color:red;text-decoration:underline;background-color:green;font-size:12px;text-selected-color:red;}//flex转向URL Var url:URLRequest=new URLRequest("");navigateToURL(url,"_self");//在本页打开navigateToURL(url,"_blank");//在新的一页打开//弹出对话框---非模式打开---PopUpManager.createPopUp(this,类(界面)的名称);---模式打开---var ep:Main=new Main();PopUpManager.addPopUp(ep,this,true);//界面,打开窗口父类,是否模式PopUpManager.centerPopUp(ep);//在父类窗口居中//---Alert的用法public function test():void{var glow:GlowFilter=new GlowFilter();glow.color=StyleManager.getColorName("blue");//边框颜色glow.strength=5;glow.alpha=0.8;var alert:Alert=Alert.show("是否选择","提示",Alert.YES|Alert.NO,this,alertHandle);alert.filters=[glow];}private function alertHandle(event:CloseEvent):void{if(event.detail==Alert.YES){lbl.text="是";}else{lbl.text="否";}}mx:Button x="62"y="80"label="Button"click="test()"/mx:Label x="62"y="37"text="Label"width="65"id="lbl"///flex Combobox添加–请选择-private function loadCB(){var arr:Array=new Array("-请选择-");for(var i:int=1;i 10;i++){arr[i]=i;}this.cb.dataProvider=arr;}//combobox选择的值和下标private function selected():void{Alert.show(cb.selectedItem.toString()+"下标:"+cb.selectedIndex);}mx:ComboBox x="194"y="80"id="cb"creationComplete="loadCB()"change="se lected()"//鼠标移动变大,Button加图片,变手型mx:Button x="72"y="80"label="Button"click="test()"mouseMove="changBi g()"mouseOut="changSmall()"id="btn"height="52"icon="@Em bed(source='img/3.jpg')"labelPlacement="bottom"width="67"useHandCursor="true "buttonMode="true"/private function changBig():void{this.btn.scaleX=1.5;this.btn.scaleY=1.5}private function changSmall():void{this.btn.scaleX=1;this.btn.scaleY=1;}//flex panel拖动效果mx:Panel x="194"y="125"width="192"height="121"layout="absolute"id= "panel"mouseDown="ondragStart(event)"mouseUp="ondragSt op(event)"/mx:Panel private function ondragStart(event:MouseEvent):void{Panel(event.target).startDrag();}private function ondragStop(event:MouseEvent):void{Panel(event.target).stopDrag();}//写入共享数据share=SharedObject.getLocal("username");erName=txtUser.text;share.flush();//读取共享数据var share:SharedObject=SharedObject.getLocal("username");Alert.show(erName);//jsp/html文件嵌入到flex中(需要把flexiframe.swc放在项目的flex_libs下)Application标签内xmlns:code=mx:HDividedBox x="0"y="10"width="100%"height="500"mx:Panel width="30%"height="500"layout="absolute"/mx:Panel mx:Panel width="70%"height="500"layout="absolute"code:IFrame id="frm"source="file/万年历.html"height="100%"width="100%"/!-这是最重要的-à/mx:Panel/mx:HDividedBox//检查使用的操作系统private function checkOS():void{var os:String=Capabilities.os;tt.text="你的操作系统是:--"+os;}//检查所使用的浏览器private function checkPlay():void{var play:String=Capabilities.playerType;Alert.show(play);if(play=="ActiveX"){tt.text="你的浏览器是--IE";}else if(play=="PlugIn"){tt.text="你的浏览器是--Mozilla-Firefox";}else{tt.text="你的浏览器是--其他";}}//检查player的版本和使用的语言private function other():void{var v:String=Capabilities.version;var l:String=nguage;tt.text="你的flayer版本号:--"+v+"\r\n你的语言是:--"+l;}//改变鼠标样式[Bindable][Embed(source="img/157.jpg")]public var cur:Class;private function initCursor(event:Event){ CursorManager.setCursor(cur);。

Flex从入门到精通 第9章


9.3.5 使用Effect.target和Effect.targets属性应用行为效果
在Flex中,可以使用Effect.target和 Effect.targets属性来调用行为效果的目标组件, 特别是在使用play()方法来调用行为效果时。在 MXML中,Effect.target用来调用一个单一的目标 组件。而用Effect.targets来定义一组目标组件。 示例代码如下。在<mx:Zoom>标签中,绑定属性 target的目标组件为按钮控件, target="{myButton2}"。然后,在<mx:Button>标 签上,定义click行为为显示Zoom的行为效果。
9.1.1 运用行为控制(Apply behavior)
编程者需要使用MXML与ActionScript两者来建立 和运用组件的行为效果。在MXML中,可以将行为 效果和触发器联合起来。例如,在下面的代码片 段中,首先定义行为效果WipeLeft其id标识符数 值为“myWL”,并且在1000毫秒中从开始到结束 的。 <mx:WipeLeft id="myWL" duration="1000"/>
9.4.2 使用嵌入的字体显示行为效果
一些行为控制融合、褪色和旋转只能对嵌入的文本产生作 用。如果在带有系统字体的控件上使用这些效果,文本不 会发生任何改变。下面的示例9-8中,带有了两个标签控件, 一个使用嵌入的文字,一个是系统文字。当在这两个标签 控件上应用褪色的行为控制时,系统文字不发生任何改变。 在示例中,首先在ActionScript中定义嵌入的字体 “myFont”,代码如下所示。 @font-face { @font src:local("Arial"); font-family: myFont; }

flex布局入门总结——语法篇

flex布局⼊门总结——语法篇⼀ Flex布局?Flex全名Flexible Box即弹性布局,基本⽤法:display:flex;⾏内元素:display:inline-flexwebkit内核的浏览器必须加上-webkit前缀.box{display: -webkit-flex; /*safari */display: flex;}注意,设为 Flex 布局以后,⼦元素的float、clear 和vertical-align 属性将失效⼆基本概念采⽤ Flex 布局的元素,它的所有⼦元素⾃动成为容器成员,称为 Flex 项⽬(flex item),简称"项⽬"。

容器默认存在两根轴:⽔平的主轴(main axis)和垂直的交叉轴(cross axis)三容器属性(即外层盒⼦属性)1. flex-direction属性 : 决定主轴的⽅向(项⽬的排列⽅向).box {flex-direction: row | row-reverse | column | column-reverse; /* row是默认值 */}2. flex-wrap属性 : 默认项⽬都排在⼀条轴线上,flex-wrap决定项⽬换⾏⽅式.box{/* nowrap默认值不换⾏; wrap换⾏,第⼀⾏在上⽅; wrap-reverse换⾏,第⼀⾏在下⽅。

*/flex-wrap: nowrap | wrap | wrap-reverse;}3. flex-flow属性 :flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap.box {flex-flow: <flex-direction> || <flex-wrap>;}4.justify-content 属性 : 项⽬在主轴上的对齐⽅式, 具体对齐⽅式与轴的⽅向有关.box {justify-content: flex-start | flex-end | center | space-between | space-around;/* 依次是左对齐 ; 右对齐;居中; 两端对齐,项⽬之间的间隔相等; 每个项⽬两侧的间隔相等(项⽬之间的间隔⽐项⽬与边框的间隔⼤⼀倍)*/}5.align-items 属性: 项⽬在交叉轴上如何对齐, 具体的对齐⽅式与交叉轴的⽅向有关.box {align-items: flex-start | flex-end | center | baseline | stretch;}flex-start:交叉轴的起点对齐。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Flex 常用技巧有关flex的用法和优化,感觉还是很有用的。

在这里把它门记下来,防止以后忘了。

一、System.setClipboard("给系统剪切板赋值"); 用于给系统的剪切板赋值。

二、var objectid = ExternalInterface.objectID; //在Internet Explorer 中返回object 标签的id 属性,或者在Netscape 中返回embed 标签的name 属性。

三、如果要创建一个自定义组件,你需要重写UIComponent 类的某些方法,最少需要重写如下方法(按先后顺序):构造函数, createChildren(), commitProperties(), measure(), layoutChrome(), updateDisplayList() 。

四、改变输出swf的尺度,背景颜色或帧频在”Navigator”窗框里右键你的项目>选中”Properties”>选中”ActionScript Compiler”>在”Additional compiler arguments”里输入你所需要的命令如想改变背景颜色,请输入: -default-background-color 0xffffff五、是数字但不是有效数字问题var quantity:Number = 15 - “rabbits”;trace(typeof quantity); //显示: “number” , 但它是NaN (not a number)trace(quantity is Number); //truetrace(quantity != NaN); //false//使用isNaN()函数检测:isNaN(quantity); //true//检测变量是否内含有效数字:!isNaN(quantity); //false六、Timer类注意事项不要认为Timer可以极其准确;使用Timer时间间隔不要低于10毫秒.七、for…in与for each…in的区别与for…in循环不同的是,for each…in循环中的迭代变量包含属性所保存的值,而不包含属性的名称(或主键,索引)八、隐藏Flash Player的右键菜单stage.showDefaultContextMenu = false;九、让其它域的.swf访问本域的.swf在本域的.swf文件里加上:flash.system.Security.allowDomain()或者使用安全策略文件”crossdomain.xml”.在Flash 8以前,这个文件必须放在.swf所在域的根目录,现在,你可以使用flash.system.Security.loadPolicyFile(),指定安全策略文件所在的位置.拒绝任何域的做法是在<cross-domain-policy>标签内什么也不填,安全策略文件也支持通用字符“*”:<?xml version=”1.0″?><!–/crossdomain.xml–><cross-domain-policy><allow-access-from domain=”” /><allow-access-from domain=”*” /><allow-access-from domain=”210.38.196.48″ /><allow-access-from domain=”*” /></cross-domain-policy>十、把数字取至最近的小数点位,即指定精确度1. 决定你要取的数字的小数点位数:例如,如果你想把90.337取成90.34,就表示你要取到两位小数点位,也就是说你想取至最近的0.01;2. 让输入值除以步骤1所选的数字(此例为0.01);3. 使用Math.round()把步骤2所计得的值取成最近的整数;4. 把步骤3所得的结果乘以步骤2用于除法的那个值.例如,要把90.337取成两个小数点位数,可以使用:trace(Math.round(90.337/0.01)*0.01); //输出:90.34十一、把数字取成一个整数的最接近倍数值例1,这样会把92.5取成5的最近倍数值:trace(Math.round(92.5/5)*5); //输出:95例2,这样会把92.5取成10的最近倍数值:trace(Math.round(92.5/10)*10); //输出:90十二、在指定数值范围内获得随机数//可取范围:[min, max]private function randRange(min:Number, max:Number):Number {var randomNum:Number = Math.floor(Math.random() * (max - min + 1)) + min; return randomNum;}十三、把数组转成字符串使用String.join()方法:var myArr:Array = new Array(”one”, “two”, “three”);var myS tr:String = myArr.join(” and “);trace(myArr); //输出: one,two,threetrace(myStr); //输出: one and two and three十四、在数组中获取最小或最大值var scores:Array = [10, 4, 15, 8];scores.sort(Array.NUMERIC);trace(”Minimum: ” + scores[0]);trace(”Maximum: ” + scores[scor es.length - 1]);十五、使用for … in语句读取关联数组元素var myObject:Object = new Object(); = “YoungBoy”;myObject.age = 20;for(var i:String in myObject) {trace(i + “: ” + myObject[i]);}//输出: name: YoungBoy// age: 20注意: for … in循环不会显示对象所有的内建属性.例如,循环会显示执行期间新增的特殊属性,但是,不会列出内建对象的方法,即使都是储存在对象属性内。

十六、过滤文字输入TextField.restrict = “此处为可输入的内容”;field.restrict = “^此处为禁止输入的内容”;restrict属性支持一些类似正则表达式的样式:field.restrict = “a-zA-z”; //只允许大小字母field.restrict = “a-zA-z “; //只允许字母和空格field.restrict = “0-9″; //只允许数字field.restrict = “^abcdefg”; //除了小写字母abcdefg不允许外,其它都允许field.restrict = “^a-z”; //所有小写字母都不允许,但是,其它内容都允许,包括大写字母field.restrict = “0-9^5″; //只允许数字,但5例外让restrict字符包含具有特殊意义的字母(例如-和^):field.restrict = “0-9\\-”; //允许数字和破折号field.restrict = “0-9\\^”; //允许数字和^field.restrict = “0-9\\\\”; //允许数字和反斜杠你也可以使用Unicode转义序列,指定允许的内容.例如:field.restrict = “^\u001A”;注意:ActionScript有区分大小写的,如果restrict属性设为abc,允许字母的大写形式(A,B和C)输入时会变成小写对待形式(a,b和c),反之亦然.restrict属性只影响用户可以输入的内容,脚本可将任何文本放入文本字段中.十七、SystemManagerSystemManager 是Flex应用的主控者, 它控制着应用窗口, Application实例, 弹出窗口, cursors, 并管理着ApplicationDomain中的类. SystemManager是FlashPlayer实例化的第一个类, 它存储了主应用窗口的大小和位置信息, 保存其子组件比如:浮动弹出窗口和模态窗口的痕迹. 通过SystemManager可以获得内嵌字体,样式和document对象.自定义的可视化组件(UIComponent的子类)只有在调用过addChild()后, 才会有一个SystemManager赋给他们, 之前是Null. 所以在自定义可视化组件的构造函数中不要使用SystemManager。

十八、Flex Application 初始化顺序通常, Application对象创建时, 发生如下事件:1. 实例化Application对象2. 初始化Application.systemManager3. Application在初始化过程之前, 派发预初始化事件.4. 调用createChild(). 此时, 所有应用组件被创建, 所有组件的createChild()被调用.5. Application派发初始化事件, 表明所有的组件初始化完毕.6. 派发creationComplete事件7. Application对象添加到显示列表中8. 派发applicationComplete事件Flash 包含的是一个时间线上的多个帧, 而Flex的SWF只包含2个帧. SystemManager, Preloader, DownloadProgressBar和少量工具类都在第一帧, 剩下的包括应用代码/ 内嵌资源全都在第二帧中. 当Flash Player下载下载SWF时, 只要接收到第一帧内足够的数据, 就会实例化SystemManager, 由它来创建Preloader, 然后创建DownloadProgressBar, 这两个对象会察看剩余字节的传输过程. 当第一帧的所有字节传输完毕后, SystemManager发送enterFrame到第二帧, 然后是其他事件. 最后Application对象派发applicationComplete事件。

十九、FLEX 与JSP 传递中文的问题情况分析:Flex默认使用的都是utf-8编码,包括Get、Post等方法。

相关文档
最新文档