Zurück   Flashforum > Flex und AIR > Flex programmieren

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 02-11-2011, 15:27   #1 (permalink)
Neuer User
 
Benutzerbild von Robbyn
 
Registriert seit: Oct 2011
Beiträge: 405
TLF Editor mit Listen elementen

Hy,

ich bins mal wieder

Habe mir mal aus Spaß einen kleinen Editor zusammen gebastelt mittels T(ext)L(ayout)F(ramework). Nun wollote ich auch Listenelmente hinzufügen, finde aber sogut ie nichts darüber im Internet.

Als kleines Beispiel wie ich das bei den anderen Elementen angegangen habe ist hier:

Code:
//Wenn mit dem Colorpicker eine Farbe ausgewählt wird
			protected function colorCP_changeHandler(event:ColorPickerEvent):void
			{
				var txtLayFmt:TextLayoutFormat	=	textArea.getFormatOfRange(null,textArea.selectionAnchorPosition,textArea.selectionActivePosition);
				
				txtLayFmt.color					=	colorCP.selectedColor;
				
				textArea.setFormatOfRange(txtLayFmt,textArea.selectionAnchorPosition,textArea.selectionActivePosition);
				textArea.setFocus();
			}
das ist ein Beispiel von einem Colorpicker, wenn einer eine Farbe auswählt wird der markierte text eingefärbt, habe das nach dem gelichen prinzip mit einem Listenelement versucht, leider ohne Erfolg.

Vielleicht hat jemand schonmal das gleiche Problem gehabt und kann mir da helfen.

Grüßen
Robbyn
Robbyn ist offline   Mit Zitat antworten
Alt 03-11-2011, 09:45   #2 (permalink)
Neuer User
 
Benutzerbild von Robbyn
 
Registriert seit: Oct 2011
Beiträge: 405
Problem hat sich gelöst, habe es selber hinbekommen
Robbyn ist offline   Mit Zitat antworten
Alt 03-11-2011, 10:13   #3 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.402
Ich finde es ja schön, dass man das noch mitteilt. Aber eine grobe Lösung wäre für andere, die vielleicht ähnlich Probleme haben interessant.
Omega Psi ist offline   Mit Zitat antworten
Alt 03-11-2011, 12:12   #4 (permalink)
Neuer User
 
Benutzerbild von Robbyn
 
Registriert seit: Oct 2011
Beiträge: 405
Ok, ich möchte ja kein Unmesch sein, hier die Link zu dem Code der mir die rettende Lösung brachte:

Source of TLFBulletExample
Robbyn ist offline   Mit Zitat antworten
Alt 02-01-2012, 16:27   #5 (permalink)
Neuer User
 
Benutzerbild von Robbyn
 
Registriert seit: Oct 2011
Beiträge: 405
Hy, ich habe dazu noch eine Frage.

Also ersteinmal vorne weg, ich habe das Script dort nicht genommen, das es für mich vom verständniss her etwas zu komplex war, habe ich noch etwas mehr gegoogelt und mir nun ein schönes Script zusammen gebastelt, das wie folgt aussieht:

Code:
var editManager:IEditManager = this.textFlow.interactionManager as IEditManager;
editManager.createList();
Wie Ihr seht sind dies nur 2 Zeilen, aber mehr braucht man offenbar dazu nicht. Mein Problem dabei ist nun folgendes. Es erstellt zwar schöne Listenelemente aber ich habe das Problem sie wieder zu entfernen. Ich habe dazu folgenden Beitrag gelesen:

Adobe Forums: list remove

(Ganz unten)

Dort gibt es einen Ansatz wie man dies lösen könnte.

Code:
em.moveChildren(currentListElement,0,currentListElement.numChildren,target,targetIndex);
Das Problem dabei ist, dass ich nicht currentListElement besitze und es somit nicht direkt ansprechen kann, da ich die Liste über createList() eingefüht hatte.

Jetzt wollte ich euch fragen ob Ihr dafür eine Antwort wisst?!

Mit freundlichen Grüßen
Robbyn
Robbyn ist offline   Mit Zitat antworten
Alt 03-01-2012, 14:21   #6 (permalink)
Neuer User
 
Benutzerbild von Robbyn
 
Registriert seit: Oct 2011
Beiträge: 405
Habe jetzt mit folgender Funktion das ListenElement herrausgefunden:

Code:
public function ListElementHandler(event:MouseEvent):void
		{
			var textLine:TextLine	=	event.target as TextLine;
			var flowGroupElement:FlowGroupElement;
			
			if(textLine)
			{
				if(textLine.userData)
				{
					var textFlowLine:TextFlowLine	=	textLine.userData as TextFlowLine;
					
					if(textFlowLine)
					{
						var paraElement:ParagraphElement	=	textFlowLine.paragraph as ParagraphElement;
					}
					
					if(paraElement)
					{
						flowGroupElement = paraElement.parent as FlowGroupElement;
					}
					
					if(flowGroupElement)
					{
						var fgeChildNum:Number	= flowGroupElement.numChildren;
						
						if(fgeChildNum == 1)
						{
							var tflow:TextFlow = flowGroupElement.getTextFlow();
							var para:ParagraphElement = tflow.getChildAt(0) as ParagraphElement;
						}
						for(var k:int = 0; k < flowGroupElement.numChildren; ++k)
						{
							var childElement:* = flowGroupElement.parent
							
							if(childElement is ListElement)
							{
								var newList:ListElement = childElement as ListElement;
								var absIndex:int 	= newList.getAbsoluteStart();
								var total:int		= newList.textLength;

								if(globalOldThis.selectionActivePosition < total && globalOldThis.selectionAnchorPosition > absIndex)
								{
									currentList	=	newList;
									break;
								}else{
									currentList =	null;
								}
							}else{
								currentList =	null;
							}
						}
					}else{
						currentList =	null;
					}
				}else{
					currentList =	null;
				}
			}else{
				currentList =	null;
			}
		}
Robbyn ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
TypeError: Error #1089: Die Zuweisung zu Listen mit mehreren Elementen wird nicht unt enky ActionScript 2 2 06-10-2011 15:09
Ist der Flash-Editor wirklich so negativ im Verhältnis zu dem Flex-Editor Yellowmann ActionScript 3 5 05-03-2008 16:10
Editor.destroy(); delete Editor; funktioniert nicht! katimp ActionScript 2 4 20-02-2007 17:31
Css: Höhe von Listen Elementen Samuel HTML und CSS 2 20-06-2005 21:58


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:36 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2014 Marc Thiele