flex 圆形布局

<?xml version="1.0" encoding="utf-8"?>

<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"

xmlns:s="library://ns.adobe.com/flex/spark"

xmlns:mx="library://ns.adobe.com/flex/mx"

creationComplete="init(event)" mouseMove="myMouseMoveHandler(event)">

<s:layout>

<s:VerticalLayout/>

</s:layout>

<fx:Script>

<![CDATA[

import mx.core.IVisualElement;

import mx.core.IVisualElementContainer;

import mx.events.FlexEvent;

import spark.components.Button;

protected function init(event:FlexEvent):void

{

//画一个圆作参考,可知initX=500,initY=400是圆心坐标,r=350是圆的半径

g.graphics.lineStyle(3,0x000000);

g.graphics.drawCircle(500,400,350);

circleLayout(g,20,500,400,350);

}

public static function circleLayout(target:IVisualElementContainer,len:int,initX:Number,initY:Number,r:Number):void

{

for(var i:int=0;i<len;i++)

{

//注意计算机的0弧度在x轴的负半轴,+为顺时针,-为逆时针,跟数学坐标刚好相反

var aphla:Number=-(0.5*Math.PI+i*2*Math.PI/len);//弧度

//这段还可以继续加工,提出一个公共的接口来

var btn:Button=new Button;

//180角度=PI弧度

btn.rotation=aphla/Math.PI;//角度

btn.x=initX-r*Math.cos(aphla);

btn.y=initY+r*Math.sin(aphla);

btn.label=(i+1)+", x:"+btn.x+" y:"+btn.y;

target.addElement(btn);

}

}

[Bindable]private var mx:Number;

[Bindable]private var my:Number;

protected function myMouseMoveHandler(event:MouseEvent):void

{

//这个坐标是相对于鼠标移动到的控件得到的

mx=event.localX;

my=event.localY;

}

]]>

</fx:Script>

<s:Label text="x:{mx},y:{my}"/>

<s:Group id="g" width="100%" height="100%"/>

</s:WindowedApplication>

注意三角函数中的参数用的是弧度

参考:诱导公式:http://baike.baidu.com/link?url=Mj5x_Iw1P5_XgOXxaoRwV_ef7aGSILvom9ayUNBGvArD2leawaqomFydRY-ynls8

flex 圆形布局,码迷,mamicode.com

时间: 2025-01-01 04:10:15

flex 圆形布局的相关文章

CSS弹性盒模型flex在布局中的应用

× 目录 [1]元素居中 [2]两端对齐 [3]底端对齐[4]输入框按钮[5]等分布局[6]自适应布局[7]悬挂布局[8]全屏布局 前面的话 前面已经详细介绍过flex弹性盒模型的基本语法和兼容写法,本文将介绍flex在布局中的应用 元素居中 [1]伸缩容器上使用主轴对齐justify-content和侧轴对齐align-items <style> .parent{ display: flex; justify-content: center; align-items: center; } &

弹性布局(Flex)布局介绍

Flex是Flexible Box的缩写,意为"弹性布局".任何一个容器都可以指定为Flex布局,块级元素为display:block,行内元素为display:inline-flex. 注意,设为Flex布局以后,子元素的float.clear和vertical-align属性将失效. 以下是一个实现Flex基本布局的代码: <style> .container{ width: 100%; height: 200px; background-color: white; d

flex图片布局

<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>flex图片布局</title> <style> body { margin: 0; padding: 0; } .box { float: left; width: 30%; margin-top: 10px; margin-left: 2.5%; height: 0; padding

快速学习Flex模型布局-兼容新旧版本css

最近在学习Flex模型布局 ,刚开始,各种属性看着头疼,现在坚持下来,把自己的学习经验分享一下: Flex模型 发展下来分三个版本: 标准版本(flex | inline-flex).混合版本(flexbox | inline-flexbox).最老版本(box | inline-box); 标准版本:IE11+已经支持啦,其他标准浏览器只要做一下兼容webkit: 混合版本:可以说是IE版本,就只有ie支持 最老版本:建议抛弃吧 --------------------------------

android 一分钟掌握圆形布局原理--圆形菜单控件 so easy

前言:首先看看我们的两个demo效果,一个类似支付宝网格属性图,一个类似建行圆形菜单. 这两个效果,第一个涉及自定义view,第二个涉及ViewGroup.如果对于自定义view有一点了解实现起来都不难,但是很多时候自己对于自定义view是一种恐惧,因为写的很少.比如今天的圆形布局的view,其实它并没有想象的那么难,就是三角函数的应用,而且根本不需要记忆,只需要我们知道三角函数的函数图象长什么样子就可以了. 今天说的一分钟掌握圆形布局的原理,肯定一分钟能掌握 现在分析我们的效果一 都知道我们的

display:flex 在布局中的妙用

最近越来越依赖display:flex 了.本来只是在移动端用来作弹性布局,现在在PC端,我基本用它来取代 float:left.比如昨天做的一个专题,基本都用 flex 来布局. 但是这其中的原理呢,flex布局的相对于float的优势又在哪呢.只是对这些有一个模糊的概念. 比如float:left/right 这个功能,一般用来排版.而它的高度塌缩,一些潜在的未被触发的问题,总是给人一种很"不靠谱"的感觉. 先来盘点下float的特性: 1. 脱离当前文档流.浮动盒子会贴着容器或者

flex左右布局 左边固定 右侧自适应

flex左右布局 左边固定 右侧自适应 想要保证自适应内容不超出容器怎么办. 通过为自适应的一侧设置width: 0;或者overflow: hidden;解决. 首先实现标题的布局,也很简单: <div class="item"> <div class="l">LEFT</div> <div class="r"> <div class="title">OMG OMG

CSS Flex弹性布局

关于css3的flex布局,阮一峰老师的文章写的清晰易懂又全面,这里附上链接http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html?utm_source=tuicool 浏览器支持 布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 + float属性.它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现.2009年,W3C提出了一种新的方案----Flex布局,可以简便.完整.响应式地实现各种页面布

flex 弹性布局整理

flex布局(弹性布局) 1.容器具备的属性有: flex-dirction:(决定主轴的方向)(即项目排列方向) 取值:row/row-reverse/column/column-reverse/ flex-wrap:(如果一条轴线排不了,如何换行) 取值:nowrap(默认):不换行. wrap:换行,第一行在上方. wrap-reverse:换行,第一行在下方. flex-flow :(flex-flow属性是flex-direction属性和flex-wrap属性的简写形式,默认值为ro