Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 23-12-2005, 12:01   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2005
Ort: Kapstadt
Beiträge: 40
AS erzeugtes dyn. Textfeld und Maske - Verständnisfragen an Euch Profis

Hallo Leudde,

ich habe mich gestern den ganzen Tag mit dynamischen Textfeldern und Masken rumgeärgert und jetzt hasse ich Flash. Irgendwie hat es lange nicht funktioniert, jetzt geht es einigermassen aber ich habe noch ein paar Fragen:

Ich erzeuge ein Textfeld und bette Verdana mit 10px Größe in die Bibliothek ein:

PHP-Code:
createTextField("profilText_txt"2006410160324268);
profilText_txt.embedFonts true;
profilText_txt.antiAliasType "normal";
profilText_txt.html true;
profilText_txt.wordWrap true;
profilText_txt.multiline true;

// Formatierung für Textfeld festlegen
var style:TextFormat = new TextFormat();
style.font "Verdana (embedded)";
style.size 10;
style.color 0xFF0000
Der Text für die Variable profilText_txt.htmlText kommt aus einer HTML-Datei. Das ganze kann ich super mit profilText_txt.setTextFormat(style) sichtbar machen und sieht genau so aus, wie ich mir das vorstelle.

Nun die Maske: profilText_txt.setMask(meineMaske) funktioniert nicht, es wird einfach der Text komplett ohne Maske angezeigt, dh. die wird ignoriert.

Lege ich mein Textfeld in einen MC “leererMovieclip” (createEmptyMovieclip blabla) funktioniert es per leererMovieclip.profilText_txt.setMask(meineMaske) blendend und die Maske arbeitet so, wie ich mir das vorstelle.

1. Frage: Warum kann ich kein dynamisches Textfeld direkt maskieren, jedoch ein dynamisches Textfeld _in_ einem Movieclip, indem ich den Movieclip mit einer Maske versehe?

2. Frage: Ich muss meine Maske auf die Bühne legen und zwar genau an die Koordinaten, wo auch das Textfeld per AS erzeugt wird, nur dann wird richtig maskiert. Liegt die Maske irgendwo, wird (logischerweise) gar kein Text angezeigt. Da ich den Rest komplett per AS programmiere, wollte ich fragen, wie ich eine Maske, die in der Bibliothek liegt, auch per setMask auf einen MC anwenden kann. Die Maske ist natürlich per AS-Verknüpfung für den Export vorbereitet (Instanzname und Export ins erste Bild), liegt aber nicht auf der Bühne. Wende ich sie an, passiert gar nix. Zieh ich die Maske auf die Bühne, instanziere sie per Namen funktioniert es jedoch. Was ist das wieder für ein Zauber?

3. Frage: Oben habe ich mein Textfeld mit setTextFormat formatiert, ich möchte aber gerne auch CSS benutzen. Das obige Textfeld per externer CSS Datei zu formatieren und anzuzeigen geht problemlos, maskiere ich das Ding mit der Containerclipmethode (leererMovieclip.profilText_txt.setMask(meineMaske)) wird zwar maskiert, aber nicht genau der Formtween (in der Form von abfliessendem Wasser), den ich erstellt hab, es läuft einfach die Maske von oben nach unten und gibt den Text frei. Mit ein- und ausgebetteter Schrift (Verdana 10 px) geht es nicht, gibt es keine Möglichkeit, CSS formatierten Text in einem dynamischen Textfeld zu maskieren?

Viel Text, ich hoffe, jemand nimmt sich ein wenig Zeit

Vielen Dank und sonnige Grüße aus Kapstadt,

Frank
2ndreality ist offline   Mit Zitat antworten
Alt 23-12-2005, 12:12   #2 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
Aloha!

1. Frage: Bin mir nicht ganz sicher, aber Flash hat Mühe beim Maskieren von dynamischem Text... musst mal in der Suche gucken, gibt viele Posts darüber, wenn ich mich nicht irre.

2. Frage: Du kannst keine per AS ansprechen, die nicht auf der Bühne liegen! Du musst also zuerst ne Instanz davon erstellen!

3. Frage: Gute Frage, kA!
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 23-12-2005, 13:00   #3 (permalink)
Neuer User
 
Registriert seit: Nov 2005
Ort: Kapstadt
Beiträge: 40
Ich habe die Posts bzgl. Masken und Text hier alle gelesen, sie beantworten meine Fragen nicht ausreichend.

Wenn Du mein Post richtig gelesen hättest, wäre Dir folgender Satz aufgefallen: "Die Maske ist natürlich per AS-Verknüpfung für den Export vorbereitet (Instanzname und Export ins erste Bild), liegt aber nicht auf der Bühne."

Die Exportverknüpfung aus der Bibliothek für AS reicht aus, um von den Scripten auf die Elemente in der Bibliothek zugreifen zu können.

Frank
2ndreality ist offline   Mit Zitat antworten
Alt 23-12-2005, 13:27   #4 (permalink)
Neuer User
 
Registriert seit: Nov 2005
Beiträge: 272
PHP-Code:
MeineTextInstanz.htmlText="<font face='Verdana (embeded)' size='10' color='#990000'>Das ist mein Text</font>"
hast du den html text SO ^^ angegeben?

wenn nicht versuch es mal so...


zu deiner frage

1) weil dynamisch erzeugte objekte in der sich IMMER ÜBER andere objekte legen, das das in einem mc nicht der fall ist liegt daran das sieser son bereits vorhanden ist und sich an dessen position (glaube hat was mit der tiefe zu tun) nichts ändert

du kannst es mal mit swapsepth und gentnexthighetdepth versuchen (weiss jedoch nicht ob das geht

ansonsten müsstest du deinen tween mit AS machen (setInterval on onEnterFrame)


mfg

Geändert von Muh_Lan (23-12-2005 um 13:33 Uhr)
Muh_Lan ist offline   Mit Zitat antworten
Alt 23-12-2005, 13:40   #5 (permalink)
Neuer User
 
Registriert seit: Nov 2005
Ort: Kapstadt
Beiträge: 40
Nee, ich habe eine richtige voillständige W3C konforme HTML Datei genommen, da sind die anderen Sachen (Header und Body Tags) mit dabei.

Aber Textfelder sind doch auch nur modifizierte Movieclips, das Mutterobjekt ist doch gleich. Der Unterschied ist mir nach Deiner Erklärung nicht klar.

Frank
2ndreality ist offline   Mit Zitat antworten
Alt 23-12-2005, 14:16   #6 (permalink)
Neuer User
 
Registriert seit: Nov 2005
Beiträge: 272
zwei sachen versuch ma so gut es geht hinzubekommen:

1)

PHP-Code:
meintext.text="test" //wird angezeigt , maskiert aber ist nicht in "html formatiert"
meintext.htmlText="test" //wird NICHT angezeigt da die angabe der font fehlt die im flash eingebtet ist
meintext.htmlText="<font face='Verdana (embeded)' size='10' color='#990000'>text</font>";  //wird angezeigt und maskiert sowie ist "html formatiert" 
2) zu dem MC

(jetzt nimm mal an das im folgenden der abstand links sich auf die "tiefe" (depth) des objektes bezieht... je mehr platz davor desto "tiefer" bzw höher liegt es die root liegt ganz UNTEN und darauf wie blätter papier die andern mc´s wie auf nem stapel pappier)

PHP-Code:
           meinDynamischErstelltestTextfeld //dein textfeld legt sich ganz oben auf
          
Masken_mc
        mein_mc3
       mein_mc2
      mein_mc1
root 
das ganze in nem mc

PHP-Code:
             Masken_mc
                   
meinDynamischErstelltestTextfeld//hier in mc3.. die tiefe des mc3 liegt bereits fest und die maske liegt "darüber"
                  
|
        
mein_mc3
       mein_mc2
      mein_mc1
root 
ich hoffe das wurde verständlich

mfg
Muh_Lan ist offline   Mit Zitat antworten
Alt 23-12-2005, 15:33   #7 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
Zitat:
Wenn Du mein Post richtig gelesen hättest, wäre Dir folgender Satz aufgefallen: "Die Maske ist natürlich per AS-Verknüpfung für den Export vorbereitet (Instanzname und Export ins erste Bild), liegt aber nicht auf der Bühne."
DITO:

Zitat:
Bamboocha hat folgendes geschrieben:
2. Frage: Du kannst keine MC per AS ansprechen, die nicht auf der Bühne liegen! Du musst also zuerst ne Instanz davon erstellen!
sprich:
PHP-Code:
_root.attachMovie("neueMaske""BezeichnerInBiblio"2, {_x:50_y:50});
_root.andererMC.setMask(neueMaske); 
Du kannst keinen MC direkt aus der Bibliothek als Maske wählen! Höchstens eine Instanz davon! Und wenn du keine Instanz davon auf der Bühne hast ("liegt aber nicht auf der Bühne") dann geht das auch nicht! Darum zuerst per attachMovie!
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 24-12-2005, 10:52   #8 (permalink)
Neuer User
 
Registriert seit: Nov 2005
Ort: Kapstadt
Beiträge: 40
bamboocha: Du hattest Recht, mit Deiner Methode klappt es 1a, habe die Maske jetzt per AS auf die Bühne geholt. Danke

Oben habe ich übrigens noch einen Tippfehler drin, ich maskiere natürlich den Movieclip und nicht das Textfield im Movieclip. In meinem Script ist das richtig, habe teilweilse getippt.

@Muh_Lan: Danke für die Erklärung Eine für mich einfachere Erklärung ist, dass das Texstfeld gar keine Methode setMask hat, sondern es die nur bei Movieclips gibt. Deswegen kann man kein Textfeld mit setMask versorgen, einen Movielclip mit eingebettetem Textfeld schon, da setMask auf den MC angewendet wird. Die Erklärung kam von Bernd, danke!

Frank

Geändert von 2ndreality (24-12-2005 um 11:03 Uhr)
2ndreality ist offline   Mit Zitat antworten
Alt 24-12-2005, 10:54   #9 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
Natürlich hatte ich recht!

Schön, dass es funktioniert!
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 24-12-2005, 11:00   #10 (permalink)
Neuer User
 
Registriert seit: Nov 2005
Beiträge: 272
Zitat:
Zitat von 2ndreality

@Muh_Lan: Danke für die Erklärung Eine für mich einfachere Erklärung ist, dass das Texstfeld gar keine Mothode setMask hat, sondern es die nur bei Movieclips gibt. Deswegen kann man kein Textfeld mit setMask versorgen, einen Movielclip mit eingebettetem Textfeld schon, da setMask auf den MC angewendet wird. Die Erklärung kam von Bernd, danke!

Frank
zonk

ein textfeld ist ein mc mit eingebtter schriftmöglichkeit (wird in flash zwar anders behandelt ist aber so)

nunja egal hauptsache es klappt

mfg
Muh_Lan ist offline   Mit Zitat antworten
Alt 27-12-2005, 12:14   #11 (permalink)
Neuer User
 
Benutzerbild von fuschnick
 
Registriert seit: Feb 2005
Ort: Hamburg
Beiträge: 95
Das glaub ich nicht

@Muh_lan:

public dynamic class TextField
extends Object

Object != MovieClip

Oder überseh ich was?

Beste Grüße,

B.
__________________
Si je perds ma carte orange, je la recherche en taxi.
fuschnick 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 11:12 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele