flash.display.Sprite를 확장하고 낮은 수준의 DisplayObjects (Sprite'a, Shape 's, TextField)의 계층 구조를 사용하는 ActionScript 3 시각화에서 여러 스크롤 영역을 만드는 가장 좋은 방법은 무엇입니까? ?ActionScript 3.0에서 스크롤 할 수있는 영역 시각화
주 스프라이트의 자식으로 추가 된 세 개의 mx.containers.Canvas 객체를 사용하려고 시도했으며 주 스프라이트를 캔버스로 변환하려고했지만 두 방법 중 하나를 사용하여 표시 할 수 없습니다. 또한 Canvas.addChild와 Canvas.rawChildren.addChild를 사용하여 DisplayObject를 추가하려고 시도했습니다.
mx. * 구성 요소를 사용하기 위해 전체 내용을 다시 작성해야 할 필요가 있습니까? 아니면 Canvas 객체 안에 더 많은 기본 객체를 표시하는 트릭이 있습니까?
다음은 스프라이트를 사용하는 방식에 대한 샘플 코드입니다. 우리는 _colSprite, _rowSprite 및 _mapSprite를 연결된 스크롤 막대와 함께 만들려합니다. Canvas 객체로 변환 할 때 표시 객체가 표시되기 전에 코드가 자동으로 멈 춥니 다 (올바르게 호출하면 addChild 행에 있음).
다음은 코드의 발췌 부분입니다. 이것은 스프라이트를 확장하는 단일 actionscript 클래스의 모든 것입니다. 당신이 Canvas.invalidateSize()을 (에 호출 할 필요가 있습니다
private function _drawColumLabels(colStartIndex: int): void {
for (var col : int = colStartIndex; col < myData.g.length; col++) {
var colName : String = this.myData.g[col].label;
var bottomLeftPoint : Object = this._getCellXYTopLeft(0, col);
bottomLeftPoint.y = this._columnLabelHeight + this._verticalPadding;
var centerX : int = Math.round(this._cellWidth/2 + (this._fontHeight/2) - 1);
var colLabel : TextField = new TextField();
colLabel.defaultTextFormat = this._labelTextFormat;
colLabel.width = this._columnLabelHeight+this._columnLabelBottomPadding;
colLabel.text = colName;
colLabel.embedFonts = true;
var colSprite : Sprite = new Sprite();
colSprite.addChild(colLabel);
colSprite.x = bottomLeftPoint.x;
colSprite.y = bottomLeftPoint.y;
colSprite.rotation = -45;
this._colSprite.addChild(colSprite);
}
}
verticalScrollPolicy가 'off'가 아닌 경우 Canvas가 자동으로 스크롤 막대를 표시해야합니다. 무슨 일이 일어나고 있는지 더 많은 아이디어를주기 위해 게시 할 수있는 코드가 있습니까? –
순수 AS3 또는 MXML + AS3에서이 글을 쓰고 있습니까? FlexBuilder를 IDE 또는 다른 용도로 사용하고 있습니까? 또한 Max Stewart가 말했듯이 코드 예제를 게시하십시오. – defmeta