繁體
|
簡體
Sclub交友聊天~加入聊天室當版主
(檢舉)
分享
新浪微博
QQ空间
人人网
腾讯微博
Facebook
Google+
Plurk
Twitter
Line
标题:
关于TextField文本对象旋转后不见的问题
[打印本页]
作者:
肤浅pcy
时间:
2016-6-17 14:12
标题:
关于TextField文本对象旋转后不见的问题
下面是我写的类,是一个包含textfield的气球,我把textfield对象加到一个sprite容器后给它旋转还是会有不见文字对象的情况,这个怎么解决?
package {
import flash.display.Sprite;
import flash.display.GradientType;
import flash.geom.Matrix;
import flash.text.TextField;
import flash.text.TextFormat;
import flash.text.TextFieldAutoSize;
import flash.filters.GlowFilter;
public class Balloon extends Sprite {
private var color:uint;
private var str:String;
private var txt:TextField;
private var tf:TextFormat;
private var sp:Sprite;//用来承载气球的容器,为了能够让气球旋转时,能看见里面的字
public var vy:Number;//设置气球的y方向的速度
public function Balloon(color:uint,str:String) {
vy=0;
this.color=color;
this.str=str;
sp=new Sprite();
addChild(sp);
init();
}
private function init():void{
addText();
draw();
}
private function draw():void{
var colors:Array = [0xffffff, color];
var alphas:Array = [1, 1];
var ratios:Array = [0, 255];
var matrix:Matrix = new Matrix();
matrix.createGradientBox(100, 100, 0, 0, 0);
graphics.beginGradientFill(GradientType.RADIAL, colors, alphas, ratios, matrix);
graphics.moveTo(0,30);
graphics.curveTo(2,0,25,0);
graphics.curveTo(48,0,50,30);
graphics.curveTo(45,70,25,70);
graphics.curveTo(5,70,0,30);
graphics.endFill();
}
private function addText():void{
txt=new TextField;
txt.selectable=false;
txt.width=50;
txt.autoSize=TextFieldAutoSize.CENTER;
txt.text=str;
txt.textColor=((color&0xff)<<16)|((color>>16)<<8)|(color>>8&0xff)
txt.x=18;
txt.y=0;
tf=new TextFormat();
tf.size=30;
tf.font="Apple Chancery";
txt.setTextFormat(tf);
txt.filters=[new GlowFilter(0x00000)];
txt.cacheAsBitmap=true;
sp.addChild(txt);
}
}
}
复制
下面是我在fla文件的时间轴上用这个类的实例,并给上rotation的值,然后就不见气球文字了。
var btn:Balloon=new Balloon(0xff0000,"A");
addChild(btn);
btn.rotation=1;
btn.x=100;
btn.y=100;
复制
作者:
flashroad
时间:
2016-6-17 15:11
这个情况我遇见过 放入容器内 即可解决
你将sprite改为MovieClip试试
作者:
肤浅pcy
时间:
2016-6-17 15:33
回复
2#
flashroad
好的,这就来试
作者:
肤浅pcy
时间:
2016-6-17 15:46
回复
2#
flashroad
刚刚测试,没有用,我把类文件继承自MovieClip也没有用。等会儿我传一个超级简单的游戏文件,自己去年做的,不过有问题:游戏初次玩,气球进入屏幕的位置是没有问题的,不过当点击Play Again后位置就有问题了,是不是我的气球数组对象的引用已经改变啊。http://pan.baidu.com/s/1skFhVFB 这个百度云链接,因为代码太长,不好贴出来,麻烦了
作者:
flashroad
时间:
2016-6-17 18:26
回复
3#
肤浅pcy
百度了一下 没想到一下子就找到了解决方法:
将
rotation
修改为
rotationZ
即可解决
下面是原文地址:
http://bbs.9ria.com/forum.php?mod=viewthread&tid=273378
作者:
肤浅pcy
时间:
2016-6-18 10:02
回复
5#
flashroad
嗯嗯,试了可以的,谢啦,还有能不能有空看看我那个分享的文件代码问题啊,拜谢
作者:
flashroad
时间:
2016-6-18 17:13
回复
4#
肤浅pcy
代码太多了,没有耐心研究
重点看 游戏重玩 按钮的代码那一块
应该调用游戏开始 的 函数
在游戏开始函数上面 将 游戏开始函数内用到的所有的变量的值 都设为初始值 即可
作者:
肤浅pcy
时间:
2016-6-20 22:32
回复
7#
flashroad
好的,明天试试
欢迎光临 flash之路-flash技术交流 (http://flashroad.dhlog.com/)
Powered by Discuz! 7.2