在 Flex 中创建自定义布局时,通常会覆盖 LayoutBase,在这种情况下,Internet 上的文档和教程说您“必须”覆盖函数updateDisplayList()
和measure()
. . .嗯?
我不认为 AS3 中存在语法上要求重写函数的构造,而且这里肯定没有。甚至没有特殊的逻辑来引发未处理的错误或任何东西。这工作得很好:
<?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="*" backgroundColor="#000000" showStatusBar="false" click="createImage()">
<fx:Script>
<![CDATA[
import spark.components.Image;
[Embed(source="AL.png")]
private static const IMAGE:Class;
private var iX:int = 0;
private var iY:int = 0;
private function createImage():void
{
var img:Image = new Image();
img.source = IMAGE;
img.width = 100;
img.height = 100;
img.x = iX
img.y = iY;
iX += 100;
iY += 100;
grp.addElement(img);
}
]]>
</fx:Script>
<s:Group id="grp" width="400" height="400">
<s:layout>
<GridLayout/>
</s:layout>
</s:Group>
</s:WindowedApplication>
在我的 GridLayout.as 类中:
package
{
import spark.layouts.supportClasses.LayoutBase;
public class GridLayout extends LayoutBase
{
}
}
每次单击应用程序时,都会在 (x, y) * n 处生成一个新图像,其中 n 是先前生成的图像数。它工作得很好。我什至添加了代码,以便右键单击将获取已经存在的图像并在屏幕上移动它,并且效果也很好。
所以我想我的问题是。. .为什么他们说这是绝对必要的?他们的意思是什么?我可以理解文档和内容,说这两个函数是您想要集中自定义的地方或类似的地方,但是在编程中,说需要函数覆盖是一些非常强大的语言;如果在您不覆盖这些功能的情况下一切正常,为什么文档和独立教程都会这样说?谢谢!