Так... определитесь, в первом посте был простой хайдер – нажал-открылся, нажал-закрылся.
Сейчас Вы говорите о закрытии при нажатии на ДРУГОЙ блок. А это уже не хайдер, а что-то типа Аккордеона. Уточните ТЗ))
Добавлено через 7 минут
Main.as

Код AS3:
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.text.TextFormat;
import Hider;
/* * * * * * * * * *
* *
* @author wolsh *
* *
\* * * * * * * * * */
public class Main extends Sprite
{
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.showDefaultContextMenu = false;
// entry point
var s:String = "Мне надо сделать так что бы я мог информацию в виде текста помещать в блок ( ну так называемый квадрат просто ) и что бы этот блок раскрывался и складывался показывая тем самым всю и лишь часть информации!";
var hider1:Hider = new Hider(150, 50, 250, s, new TextFormat("Arial", 12, 0x666666));
addChild(hider1);
hider1.x = 100;
hider1.y = 100;
}
}
}
Hider.as

Код AS3:
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.geom.Rectangle;
import flash.text.TextField;
import flash.text.TextFormat;
/* * * * * * * * * *
* *
* @author wolsh *
* *
\* * * * * * * * * */
public class Hider extends Sprite
{
private var _text :String;
private var _format :TextFormat;
private var _txf :TextField;
private var _width :Number;
private var _minHeight :Number;
private var _maxHeight :Number;
private var _hided :Boolean = true;
public function Hider(width:Number, minHeight:Number, maxHeight:Number, text:String, format:TextFormat)
{
_maxHeight = maxHeight;
_minHeight = minHeight;
_width = width;
_format = format;
_text = text;
if (stage)
{
init();
}
else
{
addEventListener(Event.ADDED_TO_STAGE, init);
}
}
private function init(event:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// создаем текстовое поле для контента.
_txf = new TextField();
_txf.defaultTextFormat = _format;
_txf.multiline = true;
_txf.wordWrap = true;
_txf.mouseEnabled = false;
_txf.width = _width - 20;
_txf.x = 10;
_txf.htmlText = _text;
_txf.height = Math.min(_maxHeight, _txf.textHeight + 4);
addChild(_txf);
// рисуем фончик, он нужен также для реакции на клик. Можно сделать его прозрачным, задав не 1 а 0 вторым параметром beginFill().
this.graphics.beginFill(0xEEEEEE, 1);
this.graphics.drawRect(0, 0, _width, this.height);
this.scrollRect = new Rectangle(0, 0, _width, _minHeight);
// начинаем слушать клик
this.addEventListener(MouseEvent.CLICK, clickHandler);
}
private function clickHandler(event:MouseEvent):void
{
// меняем режим.
_hided = !_hided;
if (_hided)
{
// если скрытый - задаем прямоугольник отображения с минимальной высотой, иначе - с максимальной.
this.scrollRect = new Rectangle(0, 0, _width, _minHeight);
}
else this.scrollRect = new Rectangle(0, 0, _width, _maxHeight);
}
}
}