加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flex 圆形布局

发布时间:2020-12-15 01:11:30 所属栏目:百科 来源:网络整理
导读:? package layouts { import mx.core.ILayoutElement; import spark.layouts.supportClasses.LayoutBase; public class CircularLayout extends LayoutBase { public function CircularLayout() { super (); } override public function updateDisplayList(w
?

package layouts

{

import mx.core.ILayoutElement;

import spark.layouts.supportClasses.LayoutBase;

public class CircularLayout extends LayoutBase

{

public function CircularLayout()

{

super();

}

override public function updateDisplayList(w:Number,h:Number):void

{

super.updateDisplayList(w,h);

if (!target)

return;

var layoutElement:ILayoutElement;

var count:uint = target.numElements;

trace(count);

var radius : Number = Math.min( target.width/2,target.height/2 ) - 25;

var _x:Number=0;

var _y:Number=0;

var angleRadians:Number=2*Math.PI/count;

var ar:Number=0;

var centerX:Number=target.width/2;

var centerY:Number=target.height/2;

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

{

layoutElement = target.getElementAt(i);

var width:Number=layoutElement.getLayoutBoundsWidth();

var height:Number=layoutElement.getLayoutBoundsHeight();

_x=Math.sin( ar )*radius+centerX-width/2;

_y=centerY-Math.cos(ar)*radius-height/2;

trace("x:"+_x+" y:"+_y);

trace("width:"+layoutElement.getLayoutBoundsWidth()+" height:"+layoutElement.getLayoutBoundsHeight());

// layoutElement.setLayoutBoundsSize(70,20);

layoutElement.setLayoutBoundsPosition(_x,_y);

ar=ar+angleRadians;

}

}

}

}

?

mxml代码:

?

<s:BorderContainer x="202" y="144" width="200" height="200">

?

<!-- -->

?

<s:layout>

?

<layouts:CircularLayout />

?

</s:layout>

?

<s:Button label="Button" width="70" height="20"/>

?

<s:Button label="Button" width="70" height="20"/>

?

<s:Button label="Button" width="70" height="20"/>

?

<s:Button label="Button" width="70" height="20"/>

?

<s:Button label="Button" width="70" height="20"/>

?

<s:Button label="Button" width="70" height="20"/>

?

</s:BorderContainer>

效果:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读