Flashchat mit smleys(red5 server)

Umut1983

Mitglied
Ich denk das Problem mit den Smileys ist bekannt oder schon längst vergessen? und ich hab leider keien Lösung gefunden.

Hab mir einen chat erstellt auf dem red5 server von mir selbst. Der chat funktioniert jedoch hab ich ein Problem mit den Smileys.
Wenn die empfangen werde gebe ich die als html code wieder jedoch erscheint das Smiley an der falschen Stelle? Siehe Bild:

smiley.jpg

Naja und ich hätte es gern im textverlauf drin und nicht am Anfang von der zeile :( vorallem wird ja dann der Nick auch verschoben... und resize wäre auch nicht schlecht wie kann ich das bewerkstelligen?

Gibts vielleicht eine Methode die Smiley ins swf einzubinden und dann dort zu ersetzen statt mit der html img tag methode?
 
Hi,

es gibt in html-Textfeldern keine Möglichkeit, Grafiken innerhalb einer Zeile darzustellen.

Du müsstest Dir eine eigene Textfeld-Klasse schreiben, oder zumindest jede Zeile in Textfelder zerlegen, die Du per Script anordnest, und die Smileys als Clips dazwischen positionieren.

Wenn ich mich recht entsinne, wurde hier im Forum vor einiger Zeit eine fertige Komponente verlinkt, die ein Textfeld mit Smileys simuliert. Probier es mal mit den Suchbegriffen "Gästebuch" (bzw. "guestbook") und "Smiley(s)".

Gruß
.
 
Also ich da im Internet mal dies heir gefunden!

http://www.actionscript.org/forums/showthread.php3?s=&threadid=16628

Versteht irgendjemand den Code?

Kann das sein das ein Code in der Textarea die dynamisch ist, einen Movieclip hervorruft?

Dann könnte man ja alles Smiley einfügen in die Bibliothek. Und die SWF datei könnte beim einlesen des Strings mit einem Movieclip ersetzen?

Ist das überhaupt möglich? oder ist die FlashProgrammierTechnik noch nicht so weit :)

P.s Im Flashhandbuch (8er) hieß es eigentlich auch das die image datei im textverlauf
erscheinen würde.. aber siehe oben nicht. Eigentlich müssten die sich bei Adobe besser damit auskenen, mal die fragen oder ? :D
 
Zuletzt bearbeitet:
Hi,

Du kannst prinzipiell Grafiken, die sich in der Bibliothek befinden, in dynamische Textfelder einbinden (verwende dann statt dem Dateinamen den Verknüpfungsbezeichner im src-Attribut des img-Tags).

Ich habe mich selbst mal auf meine Weise mit dem Problem der Positionierung befasst (den Code anderer möchte ich ungern analysieren; das ist meist eine recht unleidliche Aufgabe). Was dabei herausgekommen ist, findest Du im Anhang (Klicke auf den grauen Button, um den Text im Eingabefeld mit Smileys anzuzeigen. Implementiert sind :), ;) und :( ).

Mein Ansatz war, den Text in Wörter zu zerlegen, und mir zu merken, nach welchem Wort ein Smiley kommt. Dann wird für jedes Wort ein eigenes Textfeld instanziert, von dem ich die Position ja kenne. Das erlaubt es mir, die MovieClips mit den Smileys exakt zu positionieren.

Gruß
.
 

Anhänge

  • smileypad.zip
    23,8 KB · Aufrufe: 124
Ja hi nochmal

feine Sache obwohl ich da bei deinem Script nicht viel durchblicken konnte bis jetzt.
Außerdem glaub ich ist es nicht im scrollenden Chattext möglich oder?

Zu dem Verknüpfungsbezeichner...
Ich hab jetzt eine Datei importiert in die Bibliothek. Hab dann Rechtsklick Verknüpfung
--> Bezeichnung 'cool' angegeben!

Wenn ich jetzt im Eingabetext <img src="cool" > eingebe kommt nichts oder es stürzt ab.
Oder wo wie ruft man das auf?

Weil im Prinzip ladet mein Flaschat den Text von einem Sharedobject immer wieder rein..
dann würde doch jedesmal einfach das "cool" durch eine Bitmap oder eben Movieclip ersetzt werden an der richtigen Stelle oder denke ich falsch?

Grüße


P.s. es stürzt ab wenn ich cool.gif eingebe (der Name in der Bibliothek)! bei cool kommt nichts!
 
Hi,

ohne Deinen Chat zu kennen, kann ich Dir nicht sagen, wo Dein Problem liegt.

Außerdem glaub ich ist es nicht im scrollenden Chattext möglich oder?
Ich weiß nicht, was Du mit einem "scrollenden Chattext" meinst, aber den MC "smileypad" kannst Du mit den meisten Scrollbalken unter einer Maske verschieben.

Gruß
.
 
ok
hier ist mal mein Code von der Chatseite:
Code:
stop();




import mx.utils.Delegate;

var nc:NetConnection = new NetConnection();

nc.connect("rtmp://localhost/fitcDemo");

var so:SharedObject = SharedObject.getRemote("meinchat", nc.uri, false); 

so.onSync = Delegate.create(this, newMessageHandler);

so.connect(nc);

send.addEventListener("click",Delegate.create(this, sendMessage));

Key.addListener(this);

function sendMessage():Void
{	
// Zeit herholen
datum = new Date();
var stunden = datum.getHours();
    var minuten = datum.getMinutes();


	// SharedObject updaten
so.data.chatMessage = nick + "(" + stunden + ":" + minuten + ")" + ":\n" + eingabetext.text;
	
	// Textfeld klären
	eingabetext.text = "";
}

function onKeyUp():Void
{
	if(Key.getCode() == 13 && eingabetext.length > 0)
	{
		// wenn Enter gedrückt wird ..
		sendMessage();		
	}
}

function newMessageHandler(evtObj:Object):Void
{
	// we've been notified that there's a new message
	var newChat:String = so.data.chatMessage;
//hier war mal ein Versuch eine imagedatei einzusetzen; der string soltle einfach durch den img Tag ersetzt werden und das "cool" sollte eben der Link dazu sein ( geht ja nicht weil das Smiley s.o am Zeilenanfang stand immer... )  oder eben der Verknüpfungsbezeichner  


	newChat = newChat.split('88').join('<img src="cool">);
	
	



	
	
	if(newChat == null) return;
	
	// neuen Text ausgeben
	chattext.text += newChat + "<br>";
	
	// scrollen
	chattext.vPosition = chattext.maxVPosition;
	chattext.scroll += 2;
}


:) den Chat muss man noch ausbauen aber vorerst mal die Smileys.. die sind mir wichtig!

P.s. Das Grundgerüst davon ist im Red5Server dabei als Simplechat.fla


Achjaaa es gibt nur eine Textarea dynamisch und html als chattext bezeichnet und noch ein Texteingabefeld mit dem Instanznamen eingabetext
Sonst nichts
 
Zuletzt bearbeitet:
Hi,

ich weiß nicht, was ein red5-Server ist, und kann eigentlich auch schlecht Komponenten supporten, die von irgendwelchen Drittentwicklern mitgeliefert werden.

Es ist m.E. nicht möglich (bzw. sinnvoll), Smileys innerhalb eines Textfeldes exakt positioniert anzuzeigen, da man die Position einzelner Wörter und Zeichen nicht abfragen kann. Die Lösung ist hier wie gesagt, die Smileys als MovieClips oberhalb des Textes anzuzeigen und zu positionieren. Dieses "Textfeld" lässt sich natürlich mit der .scroll-Eigenschaft nicht scrollen, so dass Du einen eigenen Rollbalken (der über das Verschieben eines Clips unter einer Maske funktioniert) bemühen musst. Mit der Suchfunktion und dem Begriff "Scroller" bzw. "Scrollbalken" (und ggf. mit einem Blick in unsere Tutorials-Sektion) solltest Du die Komponente finden, die ich in diesem Zusammenhang gepostet habe.

Wenn Du Deine kompletten Quelldateien (fla) postest, könnten wir Dir eventuell mit der Umsetzung weiterhelfen, aber der gepostete Quelltextauszug genügt dazu nicht.

Gruß
.
 
Hi Tobi
lang ist es her :D, naja und ich hab jetzt meinen Chat fast fertig. Ich würde es gerne hier auch irgendwie als Tutorial mitgeben für Leute die genauso vergebens suchen. In dem Fall ein Flashchat mit dem OpenSourceServer Red5
Hab grad nur ein Problem noch.

Wie öffnet man eine .mxp Datei um diese zu bearbeiten?

Es gibt nämlich so eine SmileyTextfield Komponente die das fast automatisch macht. Hab ich irgendwo mal gefunden und erst jetzt entdeckt, dass es genau das ist was ich brauchte :D
Aber ich müsste halt diese Datei öffnen können damit ich das noch allgemeintauglicher machen kann.
Kannst mir einen Tip geben?
 
Hi,

Dateien vom Typ mxp sind Erweiterungen, die mit dem ExtensionManager installiert werden können. Sie lassen sich standardmäßig nicht bearbeiten, sondern enthalten ggf. weitere Dateien (z.B. Komponentendateien) in Form eines Archivs. Nach der Installation hast Du ggf. Zugriff auf die Komponentendateien, die allerdings ebenfalls in kompilierter Form vorliegen.

Das Dekompilieren und Verändern nicht freier Komponenten ist nicht erlaubt.

Gruß
.
 

Neue Beiträge

Zurück