Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 27-10-2005, 14:30   #1 (permalink)
Neuer User
 
Registriert seit: Jun 2005
Beiträge: 237
Skalierung abhängig von Inhalt eines Textfeldes

Hi Leute.

Nach langer Zeit melde ich mich auch wieder einmal...

folgendes Problem...

Ich habe einen MC Namens gebiet1_tb

Dieser erscheint beim Rollover über einen Link als Tooltip mit dem jeweiligen Namen.

Der Tooltip hat einen Hintergrund (logisch oder?) und ein dynamisches Textfeld.

Ich will jetzt den BG und das Textfeld dazu bringen, sich je nach Inhalt des Textfeldes auf der x-Achse zu skalieren...

Ich habe einen leichten Ansatz aber der bringt mich nicht weiter...

Das Textfeld ist im MC des Tooltips (gebiet1_tb) und hat den Instanznamen gebiet1...

Vielleicht hat ja von euch wer einen Codeschnipsel für mich...

greez und vielen Dank im Vorraus

D@luxe
D@luxe ist offline   Mit Zitat antworten
Alt 28-10-2005, 07:32   #2 (permalink)
Neuer User
 
Registriert seit: Jun 2005
Beiträge: 237
kann mir da keiner einen Tip geben?
Ich brauch das sehr dringend :-\
D@luxe ist offline   Mit Zitat antworten
Alt 28-10-2005, 12:22   #3 (permalink)
using namespace
 
Benutzerbild von artjom
 
Registriert seit: May 2002
Ort: Hamburg underground
Beiträge: 657
aus der flashhilfe:
Zitat:
In diesem Beispiel wird ein einzeiliges Textfeld erstellt, das gerade groß genug ist, um einen Textstring anzuzeigen, wenn das angegebene Format verwendet wird.

var text = "kleiner String";

// TextFormat-Objekt erstellen
// und dessen Eigenschaften übernehmen.
var txt_fmt = new TextFormat();
with(txt_fmt) {
font = "Arial";
bold = true;
}

// Informationen zu den Maßen für den Textstring
// mit der angegebenen Formatierung ermitteln
var metrics = txt_fmt.getTextExtent(text);

// Textfeld in der für die Anzeige des Texts minimalen Größe erstellen.
this.createTextField ("textField", 0, 100, 100, metrics.textFieldWidth, metrics.textFieldHeight);
textField.border = true;
textField.wordWrap = true;
// dem TextField-Objekt denselben Textstring
// und dasselbe TextFormat-Objekt zuweisen.
textField.text = text;
gruß
__________________
artjom.com -|- Melom
Einen PC beschleunigen? Klar, mit 9,81 m/s^2!
artjom ist offline   Mit Zitat antworten
Alt 28-10-2005, 12:31   #4 (permalink)
Neuer User
 
Registriert seit: Jun 2005
Beiträge: 237
vielen Dank aber wie kann ich das ganze auf den Hintergrund also die BG-Form übertragen?
D@luxe ist offline   Mit Zitat antworten
Alt 28-10-2005, 12:51   #5 (permalink)
using namespace
 
Benutzerbild von artjom
 
Registriert seit: May 2002
Ort: Hamburg underground
Beiträge: 657
muss halt den bg zeichnen:
ActionScript:
  1. public function drawRect(mcGround:MovieClip, nStartX:Number,nStartY:Number,nEndX:Number,nEndY:Number,nColor:Number,nAlpha:Number,nBorder:Number)
  2.     {
  3.         if(nColor==undefined) nColor=0x0;
  4.         if(nAlpha==undefined) nAlpha=100;
  5.         if(nBorder==undefined) nBorder=100;
  6.         mcGround.beginFill (nColor, nAlpha);
  7.          mcGround.lineStyle (2, 0x000000, nBorder);
  8.          mcGround.moveTo (nStartX, nStartY);
  9.         mcGround.lineTo (nEndX, nStartY);
  10.         mcGround.lineTo (nEndX, nEndY);
  11.         mcGround.lineTo (nStartX, nEndY);
  12.         mcGround.endFill();
  13.     }
  14. var text = "kleiner String";
  15.  
  16. // TextFormat-Objekt erstellen
  17. // und dessen Eigenschaften übernehmen.
  18. var txt_fmt = new TextFormat();
  19. with(txt_fmt) {
  20. font = "Arial";
  21. bold = true;
  22. }
  23.  
  24. // Informationen zu den Maßen für den Textstring
  25. // mit der angegebenen Formatierung ermitteln
  26. var metrics = txt_fmt.getTextExtent(text);
  27.  
  28. // Textfeld in der für die Anzeige des Texts minimalen Größe erstellen.
  29. var mcBG=this.createEmptyMovieClip("mcBG",this.getNextHighestDepth());
  30. drawRect(mcBG,0,0,metrics.textFieldWidth,metrics.textFieldHeight,0xcccccc,80,0)
  31. mcBG.createTextField ("textField", 1, 0, 0, metrics.textFieldWidth, metrics.textFieldHeight);
  32. mcBG.textField.border = true;
  33. mcBG.textField.wordWrap = true;
  34. // dem TextField-Objekt denselben Textstring
  35. // und dasselbe TextFormat-Objekt zuweisen.
  36. mcBG.textField.text = text;

gruß
__________________
artjom.com -|- Melom
Einen PC beschleunigen? Klar, mit 9,81 m/s^2!
artjom ist offline   Mit Zitat antworten
Alt 07-11-2005, 12:30   #6 (permalink)
Neuer User
 
Registriert seit: Jun 2005
Beiträge: 237
Sieht wirklich fein aus nur ich komme mit dem definieren der Variablen nicht zurecht... :-\

Kann ich nicht die Breite des textfeldes auslesen und dann die größe des bereits gezeichneten BG's verändern?

greez
D@luxe

EDIT: Wie kann ich der Schrift einen Farbwert zuweißen? Funktioniert das im Hex?

Geändert von D@luxe (07-11-2005 um 14:07 Uhr)
D@luxe ist offline   Mit Zitat antworten
Alt 07-11-2005, 19:21   #7 (permalink)
using namespace
 
Benutzerbild von artjom
 
Registriert seit: May 2002
Ort: Hamburg underground
Beiträge: 657
also wenn du bereits ein textfeld hast, und du nur einen bg mit entsprechender größe zeichnen willst, kannste ne funktion machen (ist aber nicht sehr sauber sowas):

Code:
function drawRect(mcGround:MovieClip, nStartX:Number, nStartY:Number, nEndX:Number, nEndY:Number, nColor:Number, nAlpha:Number, nBorder:Number) {
	if (nColor == undefined)nColor = 0x0;
	if (nAlpha == undefined)nAlpha = 100;
	if (nBorder == undefined)nBorder = 100;
	mcGround.beginFill(nColor, nAlpha);
	mcGround.lineStyle(2, 0x000000, nBorder);
	mcGround.moveTo(nStartX, nStartY);
	mcGround.lineTo(nEndX, nStartY);
	mcGround.lineTo(nEndX, nEndY);
	mcGround.lineTo(nStartX, nEndY);
	mcGround.endFill();
}
function zeichneBg(txt:TextField) {
	var metrics = txt.getTextFormat().getTextExtent(txt.text);
	drawRect(this, txt._x, txt._y, txt._x+metrics.textFieldWidth, txt._y+metrics.textFieldHeight, 0xcccccc, 50, 0);
}
zeichneBg(meinText);

gruß
__________________
artjom.com -|- Melom
Einen PC beschleunigen? Klar, mit 9,81 m/s^2!

Geändert von artjom (07-11-2005 um 19:24 Uhr)
artjom ist offline   Mit Zitat antworten
Alt 24-11-2005, 17:26   #8 (permalink)
Genusstrinker
 
Registriert seit: Oct 2001
Beiträge: 191
moinsen, das hört sich sehr gut an!
aber kann jemand zu diesem threadbeitrag vom 28-10-2005, 13:51 eine beispiel-fla erstellen?!

das wäre sehr toll, da ich davon leider nicht genau verstehe, welcher mc welchen instanznamen bekommt ...
buster007 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



Alle Zeitangaben in WEZ +1. Es ist jetzt 05:37 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele