Flex でカスタム レイアウトを作成する場合、通常は LayoutBase をオーバーライドします。この場合、インターネット上のドキュメントやチュートリアルでは、関数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 は以前に生成された画像の数です。それは完全にうまく機能します。右クリックで既存の画像を取得して画面上で移動できるようにコードを追加したところ、それもうまくいきました。
だから私は私の質問だと思います。. .なぜ彼らはこれが絶対に必要だと言っているのですか? 彼らはどういう意味ですか?これらの 2 つの関数は、カスタマイズを集中させたい場所などのドキュメントや内容を理解できますが、プログラミングでは、関数のオーバーライドが必要であると言うのはかなり強力な言語です。これらの関数をオーバーライドしなくても問題なく機能する場合、ドキュメントと独立したチュートリアルの両方がこれを言っているのはなぜですか? ありがとう!