我正在寻找一种方法在ActionScript 3中允许用户滚动TextField(从左到右),如果文本的数量大于TextField的宽度而没有将光标更改为闪烁I.ActionScript 3 textfield禁用默认光标
textfield位于MovieClip中。我不能使用MouseChildren = false和selectable = false,因为两者都停止可滚动的文本字段。
任何想法?
我正在寻找一种方法在ActionScript 3中允许用户滚动TextField(从左到右),如果文本的数量大于TextField的宽度而没有将光标更改为闪烁I.ActionScript 3 textfield禁用默认光标
textfield位于MovieClip中。我不能使用MouseChildren = false和selectable = false,因为两者都停止可滚动的文本字段。
任何想法?
那么,最简单的方法是设置myTextField.selectable = false。光标不会更改,文本字段的内容仍可滚动。也许我在这里错过了一些东西,但它适用于我的简单测试。
我从头开始创建一个小项目,不能复制这样的结果因为TextField现在是不可滚动的。我真的不确定你是如何设法做到的。也许你可以提供这个工作的例子吗? – AntBirch
当然,你可以找到例子[这里](http://wonderfl.net/c/0rVK)。由于页面有自己的可滚动内容,因此最好将预览切换到全屏模式。 – Nbooo
我想我可能对我的问题措辞不佳。 TextField需要可滚动且不可拖动。我有TextField其中包含文本太长的文本字段,所以这是隐藏的。我希望用户能够从左向右滚动TextField以便能够查看所有文本。我遇到的问题是,如果我可以选择TextField,那么textfield不能从左到右滚动。 – AntBirch
我建议如下:为孩子TextField
mc.mouseChildren = false;
mc.addEventListener(MouseEvent.MOUSE_WHEEL, scroll);
关掉鼠标交互性和手动滚动它:
private function scroll(e:MouseEvent):void{
tf.scrollV += e.delta;
}
工作实例here
更新:
要滚动的文字水平,你需要改变TextField
的scrollH属性,例如,你可以处理MOUSE_WHEEL
事件是这样的:
private function scroll(e:MouseEvent):void{
tf.scrollH -= e.delta;
}
我觉得这个答案有点混乱。我不希望能够拖动MovieClip,我只是希望文本可以像动态TextField一样可以滚动。 – AntBirch
如果你仍然是开放的建议...
(这是翻车滚动代替鼠标向下拖动滚动)
var scrollSize : int = 5; //# scrolling speed
tf.selectable = false;
tf.height = 25; //# (set height only if [tf] is already on Stage with text)
tf.addEventListener(MouseEvent.MOUSE_OVER, scroll_start);
tf.addEventListener(MouseEvent.MOUSE_OUT, scroll_stop);
function scroll_start (evt:MouseEvent) : void
{ tf.addEventListener(Event.ENTER_FRAME, handler_enterFrame); }
function scroll_stop (evt:MouseEvent) : void
{ tf.removeEventListener(Event.ENTER_FRAME, handler_enterFrame); }
function handler_enterFrame (evt:Event) : void
{
//# touch right edge = scroll text towards left
if (tf.mouseX >= (tf.width - 10)) { tf.scrollH += scrollSize; }
//# touch left edge = scroll text towards right
if (tf.mouseX <= (tf.x + 10))
{
if (tf.scrollH > 0){ tf.scrollH -= scrollSize; }
else { /* do else here = Hurray */ }
}
}
有一个奇怪的效果,如果你完全滚动文本/句子,然后立即结束只发生向后滚动,当滚动到零滚动时会出现“反弹”效果。可能造成输入框架事件。将检查后,今晚如果可能的,但一般的概念是有代码...
得飞,但希望它可以帮助...
非常感谢您的回答,不幸的是MOUSE_OVER不适合这个项目,但是会在将来记住它。 – AntBirch
@AntBirch,不用担心朋友,你现在有一个可行的解决方案。 –
更新我的回答 – www0z0k