- 浏览: 351938 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
lliiqiang:
在功能上,由于flex不支持加载外来的类的反射机制,所以可以通 ...
Flex Module专题 -
迪伦少校:
工程报错呢?。。
关于DEGRAFA的简介 -
chwnchwn:
不错的东西
关于DEGRAFA的简介 -
lorry1113:
学习了,多谢!!!!
重写FLEX组件 -
cuixuxucui:
var str:String = "";v ...
AS3 Array学习笔记
http://www.asarea.cn/showdiary.jsp?id=160
所谓容器,不是指displayobjectcontainer,而是指可以承载子显示对象,并根据容器的尺寸和滚动条进行子显示对象显示的container,如flex中的container包中的相关类。
容器最大的难点就是即便是内容的尺寸高出容器自身width、height时
1. 外界看到只是容器自身尺寸区域,不会被撑破
2. 外界获取container.width和height必须是container自身的尺寸,而不会随着内容的尺寸变化而变化!
其实我一开始想到的实现方式是mask遮罩,也实现了一个例子,结果发现其不符合第2条,因为一般的displayobjectcontainer在addchild后,container尺寸会随着child的尺寸发生改变,虽然你用一个矩形区域去遮罩child,但是外界获取container的width和height还是会包括整个区域,也就是说遮罩外的部分仍会被计入container的尺寸中!
后来查了下as3语言参考,发现displayobejct有一个scrollrect属性,原来奥妙就在于此阿!
经过试验,发现对某一个displayobject添加scrollrect属性后,其width、height就是这个scrollrect的width和height!不管自身尺寸比这个rect大还是小!
注:ms有一个延迟,在设定scrollrect后立马查看尺寸居然不是rect的尺寸,而在enterframe监听中会发现过了这一桢,width、height会变为rect的尺寸,不知何故。
在Ticore's Blog中找到了一个hack方法,哈哈,使scrollrect立即生效!
// Force DisplayObject update dimensions
var bmpData:BitmapData = new BitmapData(1, 1);
bmpData.draw(mc);
//*/
还有就是直接更改scrollrect的x,y,width,height属性是没有效果的,要new一个rect指向scrollrect,然后修改rect再赋值给显示对象的scrollrect,类似于soundchannel的soundtransform,估计是as只有在set这些属性的时候根据这些属性里的各特性值统一设定某些东西,以后更改这些属性里面的某特性值是没有效果的,要重新赋这个属性)
总结,as3的container实现可以借助scrollrect,在container中滚动时,改变scrollrect的位置,以滚动子显示对象!
附:
1. flex 3.0种的container类(所有容器类的父类)Container.as中的一段代码:
{
if (!contentPane)
return;
var vm:EdgeMetrics = viewMetrics;
var x:Number = 0;
var y:Number = 0;
var w:Number = unscaledWidth - vm.left - vm.right;
var h:Number = unscaledHeight - vm.top - vm.bottom;
if (_clipContent)
{
x += _horizontalScrollPosition;
if (horizontalScrollBar)
w = viewableWidth;
y += _verticalScrollPosition;
if (verticalScrollBar)
h = viewableHeight;
}
else
{
w = scrollableWidth;
h = scrollableHeight;
}
// If we have enough space to display everything, don't set
// scrollRect.
var sr:Rectangle = getScrollableRect();
if (x == 0 && y == 0 // Not scrolled
&& w >= sr.right && h >= sr.bottom && // Vertical content visible
sr.left >= 0 && sr.top >= 0 && _forceClippingCount <= 0) // No negative coordinates
{
contentPane.scrollRect = null;
contentPane.opaqueBackground = null;
contentPane.cacheAsBitmap = false;
}
else
{
contentPane.scrollRect = new Rectangle(x, y, w, h);
}
if (focusPane)
focusPane.scrollRect = contentPane.scrollRect;
if (border && border is IRectangularBorder &&
IRectangularBorder(border).hasBackgroundImage)
{
IRectangularBorder(border).layoutBackgroundImage();
}
}
2. as3.0语言参考中对scrollrect的解释
scrollRect 属性
scrollRect:Rectangle [read-write]
语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9
显示对象的滚动矩形范围。 显示对象被裁切为矩形定义的大小,当您更改 scrollRect 对象的 x 和 y 属性时,它会在矩形内滚动。
scrollRect Rectangle 对象的属性使用显示对象的坐标空间,并缩放到像整个显示对象一样。 滚动显示对象上已裁切窗口的转角范围是显示对象的原点 (0,0) 和矩形的宽度和高度定义的点。 它们不按原点居中,而是使用原点定义区域的左上角。 滚动的显示对象始终以整像素为增量进行滚动。
您可以通过设置 scrollRect Rectangle 对象的 x 属性来左右滚动对象, 还可以通过设置 scrollRect 对象的 y 属性来上下滚动对象。 如果显示对象旋转了 90 度,并且您左右滚动它,则实际上显示对象会上下滚动。
发表评论
-
白名单屏蔽字 unicode字符范围
2016-07-05 16:58 839(_word.unicode >= 0x2001 ... -
flash textfiled换行 以及\r和\n区别
2016-06-20 15:11 1947flash.text.TextField.wordWrap ... -
flash 字体
2016-05-20 17:35 7531.FTE和TLF的关系 http://zengr ... -
Flex Date对象与UTC之间的关系
2013-08-07 14:16 2381转自 Flex Date对象与UTC ... -
as3 数据结构array,object,dictionary用哪个
2011-12-29 16:43 4422今天在处理背包物品时,考虑是用Array还是dictionar ... -
CS5 中禁用SimpleButton
2011-12-09 11:48 1917需要在CS5中对一个SimpleButton设置禁用效果,即不 ... -
Event.FRAME_CONSTRUCTED
2011-12-07 19:07 2149_oPBox是个MovieClip,共3帧,其中第1帧有 ... -
使用拼接的属性来访问Object
2011-11-28 15:58 11021.VO:Objectt有这些属性: public ... -
ShareObject简记
2011-10-25 18:58 1057引用: _soundSO = Shared ... -
字符集学习笔记(二)
2011-10-21 14:08 1581参考http://www.discuz.net/thre ... -
字符集学习笔记(一)
2011-10-20 17:17 1610摘自http://bbs.9ria.co ... -
使用AS3帧代码控制动画
2011-10-17 14:26 3957美术同事出了一个资源,大致是这样的:四个角色形象动画,聚在一个 ... -
flash cs将一个MC变成BUTTON
2011-09-15 16:50 1828在FLASH CS中,设置一个MC的三帧名字分别为 ... -
flash中的in关键字
2011-09-08 18:10 1334in这个关键字挺有意思的: package { ... -
VerifyError: Error #1024: 发生堆栈下溢
2011-08-26 16:14 4612今天出现了奇怪的问题,RELEASE版本的背包操作总是报Ver ... -
TextField的高宽autosize
2011-08-17 14:25 3392var t_name:TextField = new Text ... -
FLASH注册点与中心点(转)
2011-08-16 10:23 4807http://space.flash8.net/space/? ... -
flashbuilder不同版本共用工作空间的问题
2011-08-02 13:36 2456今天因为项目需要,安装了FB4.5,当然原来的FB4.0没舍得 ... -
flashplayer内存管理
2011-07-29 11:18 4427参考Flash务实主义(五)——AS3的垃圾回收 ... -
从SVN上的FD项目上,构建FB项目
2011-07-28 15:18 3688说一下概况: 项目是一个FD(FlashDevelop ...
相关推荐
UGUI ScrollRect 滑动定位优化的原理是通过调整 Inertia 参数来实现惯性滚动的效果。在 UGUI 中,ScrollRect 组件可以实现滑动组件的滚动效果,但是它的惯性滚动效果并不是非常好,因此需要进行优化。 在使用 ...
轮播功能是一种常见的页面组件,用于在页面中显示多张图片/素材并自动或手动进行切换,...工程基于Unity3d 2020.3.28f1c1版本实现。这里鼠标滑动的操作依托于ScrollRect组件,而鼠标进入取消轮播,鼠标移出恢复轮播。。
在OnValueChanged()里,我们可以计算出内容区域相对于视口的中心位置,并设置ScrollRect的horizontalNormalizedPosition或verticalNormalizedPosition属性来实现居中。 代码示例: ```csharp public class ...
在AS3中实现卡马克卷轴算法,首先需要理解屏幕更新机制。AS3有两种主要的屏幕刷新操作:自动渲染(enterFrame)和事件渲染(updateAfterEvent)。前者在每一帧都会触发,适合连续更新的场景;后者则在特定事件发生后...
3. **关联滚动条**:将滚动条与需要滚动的内容容器关联起来,通常是一个`ScrollRect`或`ScrollPolicy`属性设置的`DisplayObject`。 ```actionscript content_mc.scrollRect = new Rectangle(0, 0, contentWidth, ...
在AS3中,你可以将ScrollRect应用于DisplayObject容器,以启用滚动功能。 9. **Layout**: 在使用滚动条的容器中,布局管理是非常重要的。例如,VGroup或HGroup可以帮助你排列和调整子对象的大小,以便正确地适应...
在ScrollRect的设置中,可以通过调整其“Horizontal”和“Vertical”属性的“Direction”值来实现这一效果。 四、GridLayout集成 GridLayout组合适用于组织UI元素成网格状布局,可以自动调整大小和位置以适应内容的...
4. **坐标系统和舞台滚动**:当角色移动时,需要调整场景的scrollRect属性或使用scrollX和scrollY属性来实现滚动效果。 5. **帧率管理**:优化游戏性能,确保帧率稳定,可能需要使用 ENTER_FRAME 事件来更新游戏状态...
UGUI ScrollRect是Unity3D引擎中用于实现滚动视图组件的重要工具,它在创建复杂的用户界面(UI)系统时非常实用,特别是在游戏开发中。本文将深入探讨ScrollRect的无限循环利用及其优化技巧,同时提及相关的编程背景...
Unity3d C# UGUI实现自动循环滚动的列表(ScrollRect)的功能源码 建议看说明:https://blog.csdn.net/qq_33789001/article/details/120813324
UGUI ScrollRect 带按钮翻页支持拖拽
ScrollRect滑动定位优化,避免惯性设置时,ScrollRect滑动太长的时间,并且添加了滑动停止时的执行事件
Unity组件扩展: ScrollRect 动态缩放格子大小,自动定位到中间的格子 文章链接: https://blog.csdn.net/qq_39108767/article/details/119490977
unity scrollRect组件分别对所有Item居中的使用DEMO。
UGUI ScrollRect实现带按钮翻页支持拖拽 UGUI ScrollRect是一种常用的UI控件,用于实现滚动视图的功能。今天,我们将详细介绍如何使用UGUI ScrollRect实现带按钮翻页支持拖拽的功能。 首先,让我们从基本概念开始...
在AS3中,可以利用BitmapData的scrollRect属性实现视口内的地图块动态加载。 3. **预加载**:预加载是指在游戏启动时加载所有必需资源的过程,包括音效、图片、地图数据等。预加载可以避免在游戏运行过程中出现延迟...
Unity ScrollRect滑动定位优化
[Unity UGUI]ScrollRect滚动效果大全 支持缩放滑动效果 - 支持动态缩放循环加载 - 支持大数据固定Item复用加载 - 支持不用Mask遮罩无限循环加载 - 支持ObjectPool动态加载 - 支持无限不规则子物体动态加载 - ...
ScrollRect横竖循环,不是无限循环。有两个按钮,点击变换
本资源转载自mutou_222 UGUI ScrollRect滚动优化:无限循环利用Item 具体使用文章在这里:http://blog.csdn.net/mutou_222/article/details/50455729