| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| ░▒░▒░▒░▒░▒ Registriert seit: Oct 2007 Ort: L.E.
Beiträge: 129
| 3D Rotation Problem Text unscharf bei rotationY=0
Hallo, Wenn man die 3D Rotation Property eines Textfeldes setzt, wird dieses plötzlich unscharf, bzw. interpoliert. Das tritt auch bei einem Wert von 0 auf. Ist das ein Bug in CS4? (Ich arbeite mit 10.0.2.) oder habt ihr ne idee an was das liegen könnte? das beispiel: testtext Code: import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFormat;
var label:TextField = new TextField();
label.autoSize=TextFieldAutoSize.LEFT;
label.background=false;
label.border=false;
var format:TextFormat = new TextFormat();
format.font="Verdana";
format.color=0xFF0000;
format.size=24;
label.defaultTextFormat=format;
label.text="TEST THE 3D TEXT";
addChild(label);
label.addEventListener(MouseEvent.CLICK, testRotation);
function testRotation(e:Event):void{
label.rotationY=0;
}
__________________ scio nescio |
| | |
| | #5 (permalink) | |
| ░▒░▒░▒░▒░▒ Registriert seit: Oct 2007 Ort: L.E.
Beiträge: 129
|
Also das TF in einen rotierenden Sprite zu packen und chachAsBitmap, waren auch meine ersten gedanken gewesen. das bringt leider keinen Erfolg. Einen Schritt bin ich weiter gekommen durch Zitat:
Deshalb müsste man einen Container benutzen um z.B. nach einem Tween den Text wieder zu reseten. Ist aber ein unbefriedigender Workaround. Und ändert nichts an der Tatsache, dass sobald eine 3d- EIgenschaft - egal ob die des Containersprites oder die des Textes - geändert wird sich auch die Darstellung des Textes ändert. Es sieht so aus als ob das Antialiasing in Bitmaptext gewandelt. Hier mal das Beispiel umgedreht von tranformed zu resetet. Code: import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFormat;
import flash.text.AntiAliasType;
import flash.geom.Matrix3D;
var label:TextField = new TextField();
label.cacheAsBitmap=true;
label.autoSize=TextFieldAutoSize.LEFT;
label.background=false;
label.border=false;
var format:TextFormat = new TextFormat();
format.font="Verdana";
format.color=0xFF0000;
format.size=24;
label.defaultTextFormat=format;
label.text="CLICK ME TO GET THE 3D BUG";
label.x=100
var sprite:Sprite=new Sprite();
sprite.cacheAsBitmap=true;
sprite.rotationY=0;
sprite.addChild(label);
addChild(sprite);
sprite.addEventListener(MouseEvent.CLICK, testRotation);
function testRotation(e:Event):void{
trace("REMOVE TRANSFORM");
sprite.transform.matrix3D = null;
}
__________________ scio nescio Geändert von slowkey (25-09-2009 um 18:30 Uhr) | |
| | |
| | #6 (permalink) |
| in the boondocks Registriert seit: Feb 2006 Ort: Augsburg
Beiträge: 3.495
|
also das is sicher kein bug. wie du vermutest wird der text oder auch alles andere in ein bitmap umgewandelt. ich behaupte einfach mal es ist schneller als anker und vektoren räumlich zu versetzen. sieh mal hier: PHP-Code: PHP-Code: mfg sx Geändert von shin10 (25-09-2009 um 22:58 Uhr) |
| | |
| | #7 (permalink) |
| ░▒░▒░▒░▒░▒ Registriert seit: Oct 2007 Ort: L.E.
Beiträge: 129
|
Ja shin10 hat recht. Das ist gar kein Text spezifischen Problem, es liegt an der 3D API. Es wird alles durch eine Bitmap dargestellt auch in Vektoren gewandelter Text oder graphic objecte. Code: import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFormat;
import flash.text.AntiAliasType;
import flash.geom.Matrix3D;
var shape:Shape = new Shape();
shape.graphics.beginFill(0x000000);
shape.graphics.lineStyle(2, 0xFF0000);
shape.graphics.drawRect(0, 0, 300, 300);
shape.graphics.endFill();
addChild(shape);
shape.rotationY=0;
stage.addEventListener(MouseEvent.CLICK, removeTransform);
function removeTransform(e:Event):void {
trace("REMOVE TRANSFORM");
shape.transform.matrix3D = null;
} Da ich bei nach jedem Tween sowieso bei 360, bzw. 0 ankommen will, resete ich zähneknirschend die Tranformation am Ende des Tweens Code: shape.transform.matrix3D = null;
__________________ scio nescio Geändert von slowkey (26-09-2009 um 12:51 Uhr) |
| | |
| | #8 (permalink) | |
| Neuer User Registriert seit: Aug 2009 Ort: Berlin
Beiträge: 271
| Zitat:
Bei meinem Projekt wollte ich das nicht, daher habe ich Platzhalter in den 3D-Raum gesetzt und positioniere 2D-Objekte an die Bühnenposition der 3D-Platzhalter. ![]() var p:Point= obj.local3DToGlobal( new Vector3D(0, 0, -1)); Und bei PV3D wird die Position mitberechnet wenn obj.autoCalcScreenCoords= true; obj.screen.x obj.screen.y | |
| | |
![]() |
| Lesezeichen |
| Stichworte |
| 3d api, flash text |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| rotationY Problem auf anderem Rechner | derMikey | ActionScript 3 | 2 | 09-07-2009 18:40 |
| Text unscharf | CaptainCT | Flash Einsteiger | 2 | 27-06-2007 09:00 |
| Text is unscharf und bei dynamischen text alle versetzt und nur die hälfte sichtbar | Le Roc | Flash MX | 2 | 24-04-2004 13:52 |
| Text unscharf... | DJZeus | Flash 4 und Flash 5 | 6 | 13-06-2003 15:16 |