这是openlaszlo中的聊天应用程序。我写在inputtext区域。并在文本区域接收发送的文本。过了一段时间后,我无法在文本字段中看到文本。所以,我想在文本区域添加一个滚动条。但我不能让它发挥作用。有任何想法吗?提前谢谢!!
<canvas height="100%" width="100%" bgcolor="white" allowfullscreen="true" debug="true">
<class name="chatSender">
<attribute name="_netConnection" />
<attribute name="_sharedObject" />
<handler name="oninit">
this._netConnection = new NetConnection();
this._netConnection.connect("rtmp://115.187.37.167/oflaDemo/room1");
this._sharedObject = SharedObject.getRemote("chat", this._netConnection.uri, true);
this._sharedObject.connect(this._netConnection);
Debug.write("ChatSender initiated");
</handler>
<method name="sendMessage" args="mensaje">
Debug.write("SendMessage: " + mensaje )
this._sharedObject.send("messageHandler",mensaje);
</method>
</class>
<class name="chatReceiver">
<attribute name="_netConnection" />
<attribute name="_sharedObject" />
<handler name="oninit"><![CDATA[
this._netConnection = new NetConnection();
this._netConnection.connect("rtmp://115.187.37.167/oflaDemo/room1");
this._sharedObject = SharedObject.getRemote("chat", this._netConnection.uri, true);
this._sharedObject.connect(this._netConnection);
this._sharedObject.messageHandler = function(str) {
var textoAnterior = texto.text;
Debug.write( textoAnterior + "<br/>" + str);
texto.setAttribute("text", textoAnterior + "<br/>" + str);
};
Debug.write ("chatReceiver initiated");
]]>
</handler>
</class>
<chatReceiver name="chatRec"/>
<chatSender name="chatSen"/>
<simplelayout/>
<view width="100%" height="80%" bgcolor="white" clip="true">
<text id="texto" width="100%" height="90%" multiline="true" clip="true">
</text>
</view>
<view bgcolor="blue" width="70%">
<simplelayout axis="x"/>
<inputtext bgcolor="cyan" width="100%" id="mensajeAEnviar"/>
<button width="50" onclick="canvas.chatRec._cajaChat=texto; canvas.enviarTexto(mensajeAEnviar.text);">Send</button>
</view>
<method name="enviarTexto" args="texto">
Debug.write("enviarTexto:" + mensajeAEnviar.text);
canvas.chatSen.sendMessage(mensajeAEnviar.text);
mensajeAEnviar.setAttribute("text","");
</method>
</canvas>
答案 0 :(得分:2)
我已删除了Red5 /聊天特定代码,以便您了解如何在OpenLaszlo中使用滚动条。对于要滚动的输入文本,请勿设置高度。父视图必须剪切内容,然后当inputtext的大小增大到大于父视图时,滚动条将激活。
<canvas height="100%" width="100%" bgcolor="white" allowfullscreen="true" debug="true">
<method name="addLineOfText" args="line"><![CDATA[
var newText = texto.text;
if (newText != '')
newText += '<br/>';
newText += line;
texto.setAttribute("text", newText);
]]>
</method>
<simplelayout/>
<view width="200" height="150" bgcolor="#eeffee" clip="true">
<text id="texto" width="100%" multiline="true" clip="true">
Here are just a few lines of text for testing...<br/>
Here are just a few lines of text for testing...<br/>
Here are just a few lines of text for testing...<br/>
Here are just a few lines of text for testing...<br/>
Here are just a few lines of text for testing...
</text>
<scrollbar axis="y" />
</view>
<view bgcolor="blue" width="300">
<simplelayout axis="x"/>
<inputtext id="mensajeAEnviar"
bgcolor="cyan"
width="100%" />
<button id="but1"
width="50"
onclick="canvas.addLineOfText(mensajeAEnviar.text)"
text="Send" />
</view>
>
</canvas>
这是一篇博文,其中详细介绍了OpenLaszlo中的滚动条: http://www.antunkarlovac.com/blog/2006/11/16/using-a-scrollbar/
我已经在SWF10和DHTML运行时中使用OpenLaszlo 5.0(主干)测试了此代码。