Actionscript 3 maxScrollV不';t考虑html图像大小<;img>;用于滚动文本字段

Actionscript 3 maxScrollV不';t考虑html图像大小<;img>;用于滚动文本字段,actionscript-3,flash,Actionscript 3,Flash,我使用的是Flash Pro CS6。我构建了一个滚动文本字段,通过XML注入htmltext 我遇到的问题是maxScrollV似乎没有考虑我的图像。我曾尝试在html中设置维度,但这似乎抛弃了文字包装 public class ScrollingTextField extends Sprite { private var myText:TextField; private var myFormat:TextFormat; private var bounds:Rect

我使用的是Flash Pro CS6。我构建了一个滚动文本字段,通过XML注入htmltext

我遇到的问题是maxScrollV似乎没有考虑我的图像。我曾尝试在html
中设置维度,但这似乎抛弃了文字包装

public class ScrollingTextField extends Sprite
{
    private var myText:TextField;
    private var myFormat:TextFormat;
    private var bounds:Rectangle;
    private var boundHeight:Number;
    private var slider:SliderImage;

    public function ScrollingTextField()
    {
        trace("ScrollingTextField added");
        myText = new TextField();
        myFormat = new TextFormat();
        slider = new SliderImage();

        myFormat.font = "Arial";
        myFormat.color = 0x333333;
        myFormat.size = 14;
        addChild(myText);

        myText.htmlText = "init";
        myText.setTextFormat(myFormat);
        myText.wordWrap = true;
        myText.multiline = true;
        myText.setTextFormat(myFormat);
        myText.selectable = false;

        this.addChild(slider);

        slider.addEventListener(MouseEvent.MOUSE_DOWN, dragSlider);
        addEventListener(Event.ENTER_FRAME, checkSlider);
    }

    private function dragSlider(evt:MouseEvent):void
    {
        slider.startDrag();
        slider.removeEventListener(MouseEvent.MOUSE_DOWN, dragSlider);
        slider.addEventListener(MouseEvent.MOUSE_UP, dropSlider);
        addEventListener(MouseEvent.MOUSE_MOVE,moveSlider);
    }

    private function dropSlider(evt:MouseEvent):void
    {
        slider.stopDrag();
        slider.removeEventListener(MouseEvent.MOUSE_UP, dropSlider);
        slider.addEventListener(MouseEvent.MOUSE_DOWN, dragSlider);
        removeEventListener(MouseEvent.MOUSE_MOVE,moveSlider);
    }

    private function moveSlider(evt:MouseEvent):void
    {
        evt.updateAfterEvent();
        if (evt.buttonDown)
        {
            slider.startDrag(false,bounds);
        }
        else
        {
            slider.stopDrag();
        }
    }

    private function checkSlider(evt:Event):void
    {
        myText.scrollV = ((slider.y - bounds.y)* (myText.maxScrollV)/boundHeight);
    }

    public function textToDisplay(txt:String):void
    {
        myText.htmlText = txt;
        myText.setTextFormat(myFormat);
    }

    public function setDimensions(w:Number, h:Number):void
    {
        boundHeight = h - slider.height;
        bounds = new Rectangle(w + 20,10,0,h - slider.height);
        slider.x = w + 20;
        slider.y = 10;
        myText.width = w;
        myText.height = h;
    }

    public function checkTextFieldSize():void
    {
        trace("numLines = " + myText.numLines);
        trace("text height = " + myText.textHeight);
        trace("height = " + myText.height);
        if (myText.textHeight < myText.height)
        {
            slider.visible = false;
        }
        else
        {
            slider.visible = true;
        }
    }

}
公共类ScrollingTextField扩展了Sprite
{
私有变量myText:TextField;
私有var myFormat:TextFormat;
私有变量边界:矩形;
私有var边界高度:数字;
私有变量滑块:SliderImage;
公共函数ScrollingTextField()
{
跟踪(“添加了ScrollingTextField”);
myText=新文本字段();
myFormat=新文本格式();
slider=新SliderImage();
myFormat.font=“Arial”;
myFormat.color=0x333333;
myFormat.size=14;
addChild(myText);
myText.htmlText=“init”;
myText.setTextFormat(myFormat);
myText.wordWrap=true;
myText.multiline=true;
myText.setTextFormat(myFormat);
myText.selective=false;
这个.addChild(滑块);
slider.addEventListener(MouseEvent.MOUSE_DOWN,dragSlider);
addEventListener(Event.ENTER_FRAME,checkSlider);
}
专用函数dragSlider(evt:MouseEvent):无效
{
slider.startDrag();
slider.removeEventListener(MouseEvent.MOUSE_DOWN,dragSlider);
slider.addEventListener(MouseEvent.MOUSE\u UP,dropSlider);
addEventListener(MouseEvent.MOUSE\u MOVE,moveSlider);
}
私有函数dropSlider(evt:MouseeEvent):无效
{
slider.stopDrag();
slider.removeEventListener(MouseEvent.MOUSE_UP,dropSlider);
slider.addEventListener(MouseEvent.MOUSE_DOWN,dragSlider);
removeEventListener(MouseEvent.MOUSE\u MOVE,moveSlider);
}
私有函数moveSlider(evt:MouseeEvent):无效
{
evt.updateAfterEvent();
如果(evt.按钮向下)
{
slider.startDrag(false,bounds);
}
其他的
{
slider.stopDrag();
}
}
私有函数检查滑块(evt:事件):无效
{
myText.scrollV=((slider.y-bounds.y)*(myText.maxScrollV)/boundHeight);
}
公共函数textToDisplay(txt:String):void
{
myText.htmlText=txt;
myText.setTextFormat(myFormat);
}
公共函数集合维度(w:编号,h:编号):无效
{
boundHeight=h-滑块高度;
边界=新矩形(w+20,10,0,h-滑块高度);
滑块x=w+20;
滑块y=10;
myText.width=w;
myText.height=h;
}
公共函数checkTextFieldSize():void
{
跟踪(“numLines=“+myText.numLines”);
跟踪(“文本高度=“+myText.textHeight”);
跟踪(“height=“+myText.height”);
如果(myText.textHeight

}

嗯,我最后做了一个廉价的变通办法。从网络搜索来看,似乎.maxScrollV不喜欢.htmltext。我会把它拿到Adobe。。。同时,在html中添加大量的时间来充当图像空间,似乎可以起到作用。

只是为了添加。我已经将元素移动到页面顶部,它添加到了滚动按钮中,但同时切断了第一行文本和最后一部分。maxScrollV值从1更改为16。当元素位于页面底部时,不会发生任何更改。奇怪的