 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
17.07.2007, 17:38
|
#1
|
|
TP-Insider
Registriert seit: Nov 2002
Ort: Orscholz
|
Textformatierung in .as (AS3)
Hi,
da ich noch keine Rubrik "Flash 9" bzw. AS3 gefunden habe, poste ich jetzt
mal hier mein Problem:
Ich habe die AS3 Preloader-Vorlage von Flashscript.biz herunter geladen,
die ich auch schon fast einsatzbereit habe. Nur mit der Textformatierung
will es noch nicht so ganz klappen. Im Anhang findet ihr die Datei.
Sobald ich meine Textanweisungen reinschreibe > z.B. ab Zeile 61:
Code:
...
tl.text = "geladen: "+String(ratio)+"%";
var format1:TextFormat = new TextFormat();
format1.color = 0xFF0000;
tl.setTextFormat(format1);
//trace("Loading in progress");
lBar.width = ratio*corFactor;
...
kommt folgende Fehlermeldung:
"... und war keine Kompilierungszeit-Konstante: TextField". Was habe ich
hier vergessen, bzw. missachtet?
Vielen Dank!
Elli
__________________
Es gibt keinen Fortschritt ohne den Glauben an die Zukunft.
[JFK]
|
|
|
17.07.2007, 17:55
|
#2
|
|
TP-Moderator
Registriert seit: Mar 2002
|
Gute Frage 
Wie sieht es mit einer Beispielfla aus, mit der ganzen Komponenten, Dateien und ich werde versuchen dir zu helfen. Wobei im Moment die Betonung auf versuchen liegt, da zwischen as 2 und as3 absolute Welten liegen und ich mich gerade erst da einarbeite.
|
|
|
17.07.2007, 19:04
|
#3
|
|
TP-Insider
Registriert seit: Nov 2002
Ort: Orscholz
|
Hi Wanderratte,
klar, hier der Link: http://flashas3.flashscript.biz/stag...preloader.html
Mir gefallen vor allem die neuen Videokomponenten und das einfache
Skinning. Auch die Buttons habe ich schon unter AS3 zum Leben er-
weckt. Aber wie du schon erwähnst, muss man sich erst mal an AS3
gewöhnen > buttonMode, addEventListener und und und...
__________________
Es gibt keinen Fortschritt ohne den Glauben an die Zukunft.
[JFK]
|
|
|
17.07.2007, 23:49
|
#4
|
|
TP-Moderator
Registriert seit: Mar 2002
|
Hallo Elli,
du hast eigentlich soweit richtig gemacht, wenn du nur die passenden Klassen im Packet mit importiert hättest. 
Du hast zwar das hier stehen:
import flash.text.TextField;
Allerdings beinhaltet TextField nicht die Klassen für die Textformationen, da sind noch ein paar andere Klassen wiederum für zuständig.
Die Lösung du importierst erstmal alle und zwar änderst du folgende Zeile ab:
import flash.text.TextField;
in
import flash.text.*
So holst du alle Klassen die für den Text zuständig sind rein, ansonsten schmeisse auch mal einen Blick in die Hilfe, habe ich auch gemacht 
|
|
|
18.07.2007, 00:16
|
#5
|
|
TP-Moderator
Registriert seit: Mar 2002
|
So, ich habe dir das Dingen ein wenig um eine Funktion erweitert, die du beliebig für x verschiedene Formate erweitern kannst
PHP-Code:
/*****************************************
Flashscript.biz: Timeline preloader
******************************************/
package biz.flashscript{
import flash.display.MovieClip;
import flash.events.*;
import flash.text.*;
public class Root extends MovieClip {
public static var _root:MovieClip;
private var t:TextField;
private var l:TextField;
private var tl:TextField;
//Neue Variable bei mehreren verschiedene Formate, einfach neue Var anlegen.
private var format1:TextFormat = new TextFormat();
private var lBar:LoaderBar;
public function Root () {
_root = this;
t = new TextField();
this.addChild (t);
l = new TextField();
this.addChild (l);
l.x = 150;
tl = new TextField();
this.addChild (tl);
tl.x = 200;
tl.y = 150;
var lBar:LoaderBar = new LoaderBar (100, 100);
this.addChild (lBar);
var corFactor:int = lBar.width/100;
//
this.loaderInfo.addEventListener (Event.INIT, onRootLoaderInit);
this.loaderInfo.addEventListener (ProgressEvent.PROGRESS, onRootLoaderProgress);
this.loaderInfo.addEventListener (Event.COMPLETE, onRootLoaderComplete);
/********* FUNKTIONSAUFRUF ZUM TEXTFORMATION **************/
textFormat (format1,0x00FF00);
/*********************************************************/
//Funktion textFormat, bei Bedarf kannst du diese Funktion erweitern
function textFormat (obj:Object,farbe:Number):void {
obj.color = farbe;
}
function onRootLoaderInit (event:Event):void {
var lb:int = event.target.bytesLoaded;
var ltl:int = event.target.bytesTotal;
var ratio:int = lb/ltl*100;
//t.text = "init: "+String(lb);
//l.text = "TOTAL: "+String(ltl);
tl.text = "LOADED: "+String(ratio)+"%";
//trace(event.target.bytesLoaded);
//trace("Loading initiated");
lBar.width = 1*corFactor;
}
//
function onRootLoaderProgress (event:ProgressEvent):void {
//trace(event.bytesLoaded);
//trace(event.bytesTotal);
var lb:int = event.bytesLoaded;
var ltl:int = event.bytesTotal;
var ratio:int = lb/ltl*100;
//t.text = "PROGRESS: "+String(lb);
//l.text = "TOTAL: "+String(ltl);
tl.text = "geladen: "+String(ratio)+"%";
tl.setTextFormat (format1);
//trace("Loading in progress");
lBar.width = ratio*corFactor;
}
//
function onRootLoaderComplete (event:Event):void {
//trace("Loaded: "+event.target.bytesLoaded);
//trace("Total: "+event.target.bytesTotal);
var lb:int = event.target.bytesLoaded;
var ltl:int = event.target.bytesTotal;
var ratio:int = lb/ltl*100;
t.text = "COMPLETE: "+String(lb);
l.text = "TOTAL: "+String(ltl);
tl.text = "geladen: "+String(ratio)+"%";
tl.setTextFormat (format1);
//trace("Loading in progress");
lBar.width = ratio*corFactor;
if (ratio>=100) {
_root.gotoAndStop ("frame2");
_root.removeChild (lBar);
_root.removeChild (t);
_root.removeChild (l);
_root.removeChild (tl);
}
}
}
}
}
|
|
|
18.07.2007, 09:59
|
#6
|
|
TP-Insider
Registriert seit: Nov 2002
Ort: Orscholz
|
Vielen Dank! Werde es gleich mal testen
An der Sache mit dem Import war ich auch dran, hatte hier allerdings
nicht gefunden, wie diese für Textformate heißt. Mit dem * ist natürlich
genial
Noch was: Wo muss ich denn überall drehen, damit die Root nicht aus
den Unterordnern geladen wird, sondern ganz normal im Ordner /flash/
liegen kann. Oder gibt es einen Grund, warum man die in 2 Unterordner
packen soll?
__________________
Es gibt keinen Fortschritt ohne den Glauben an die Zukunft.
[JFK]
|
|
|
18.07.2007, 10:16
|
#7
|
|
TP-Insider
Registriert seit: Nov 2002
Ort: Orscholz
|
Ok, hat sich erledigt > im Eigenschaftsinspektor wähle ich die Datei aus und
in der Zeile mit "package" lösche ich einfach die Pfadangabe...
__________________
Es gibt keinen Fortschritt ohne den Glauben an die Zukunft.
[JFK]
|
|
|
18.07.2007, 10:31
|
#8
|
|
TP-Insider
Registriert seit: Nov 2002
Ort: Orscholz
|
Jetzt habe ich doch noch was gefunden, was mir keine Ruhe lässt.
In der Root.as steht ja auch was von ner LoaderBar, allerdings sehe
ich von dem nichts. Wäre natürlich noch ein Stück cooler, wenn
auch ein Ladebalken erscheinen würde. Hast du dazu auch noch
eine Idee?
__________________
Es gibt keinen Fortschritt ohne den Glauben an die Zukunft.
[JFK]
|
|
|
18.07.2007, 16:22
|
#9
|
|
TP-Moderator
Registriert seit: Mar 2002
|
Hallo,
jeb die haben ich und zwar ist ein ganz kleiner Fehler in der Fla.
Die LoaderBar in der Bibliothek ist 96 px lange und durch die Zeile:
PHP-Code:
var corFactor:int = lBar.width/100;
da der corFactor als integer Deklariert wird, ist das Ergebnis 0.96 durch int hat der corFactor als Inhalt 0.
im weiteren Script, wird dann mit 0 multiplizert und es ergibt dadurch immer 0
PHP-Code:
lBar.width = ratio*corFactor;
egal was in ratio drin steht
So Lösung:
Du rundest
PHP-Code:
var corFactor:int = Math.round(lBar.width/100);
oder du erweiterst die Bar in der Bibliothek auf mindestens 100px
|
|
|
18.07.2007, 18:02
|
#10
|
|
TP-Insider
Registriert seit: Nov 2002
Ort: Orscholz
|
Hmmm, also ich hab wohl Tomaten auf den Augen. Kann in der Lib absolut
keine Progressbar finden. Sehe nur die 2 Seekbars fürn FLV-Player. Oder
muss ich den noch manuell dort einfügen und benennen?
Aufgrund dessen, hatte ich in der Root.as die Zeile ausgetauscht > Math.round,
ohne Ergebnis jedoch 
__________________
Es gibt keinen Fortschritt ohne den Glauben an die Zukunft.
[JFK]
|
|
|
18.07.2007, 19:16
|
#11
|
|
TP-Moderator
Registriert seit: Mar 2002
|
*sch.... Hitze*
Ich habe das Dingen selber eingebastelt 
Also du zeichnest ein rechteck auf die Bühne mit mindestens 100 px danahc markierst du ihn Ausrichtung :Links und nennst ihn: LoaderBar danach klickst du auf erweitert und setzt ein Häckchen bei export für ActionScript und bestätigst es, im Anschluss löscht du den MC von der Bühne 
|
|
|
19.07.2007, 09:23
|
#12
|
|
TP-Insider
Registriert seit: Nov 2002
Ort: Orscholz
|
Super, so hats natürlich geklappt 
__________________
Es gibt keinen Fortschritt ohne den Glauben an die Zukunft.
[JFK]
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
| | |