Actionscript 3 Flash AS3-更改精灵大小效果文本场?
与一个简单的问题作斗争。我有一个精灵和一个文本字段。它们都不是作为彼此的子对象添加的,而是独立的对象。该课程全文如下所示。所有这些都按预期工作,但是当我调用simpleGUIElementResize函数来调整精灵的大小时,textfield也会调整大小,这是我不想要的。效果应该是,我可以做任何我想做的事情,文本保持在原处 有什么想法吗 多谢各位Actionscript 3 Flash AS3-更改精灵大小效果文本场?,actionscript-3,flash,text,sprite,tween,Actionscript 3,Flash,Text,Sprite,Tween,与一个简单的问题作斗争。我有一个精灵和一个文本字段。它们都不是作为彼此的子对象添加的,而是独立的对象。该课程全文如下所示。所有这些都按预期工作,但是当我调用simpleGUIElementResize函数来调整精灵的大小时,textfield也会调整大小,这是我不想要的。效果应该是,我可以做任何我想做的事情,文本保持在原处 有什么想法吗 多谢各位 package com.simpleGUI { //flash imports import flash.display.Sprite
package com.simpleGUI {
//flash imports
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.text.TextFormat;
import flash.text.TextFormatAlign;
import flash.text.Font;
//greensock
import com.greensock.TweenMax;
import com.greensock.easing.*;
public class simpleGUIElement extends Sprite {
//declaration vars
private var sgeWidth:int;
private var sgeHeight:int;
private var sgeColour:String;
private var sgeText:String;
//internal vars
private var sgeSprite:Sprite = new Sprite();
private var sgeTextField:TextField = new TextField();
private var sgeFormat:TextFormat = new TextFormat();
//formatting vars
private var sgeTextSize:int;
public function simpleGUIElement(SGEWIDTH:int, SGEHEIGHT:int, SGECOLOUR:String, SGETEXT:String, SGETEXTSIZE:int) {
trace('simpleGUIElement created');
//populate the vars
sgeWidth = SGEWIDTH;
sgeHeight = SGEHEIGHT;
sgeColour = SGECOLOUR;
sgeText = SGETEXT;
sgeTextSize = SGETEXTSIZE;
createSprite(); //create the rectangle
//if the text string is not null create the textfield
if (sgeText.indexOf("null") >= 0) {
return;
} else {
createTextField();
}
}
private function createSprite():void {
//create the sprite
sgeSprite.graphics.beginFill(uint(sgeColour));
sgeSprite.graphics.drawRect(0, 0, sgeWidth, sgeHeight);
sgeSprite.graphics.endFill();
//add the sprite
addChild(sgeSprite);
}
private function createTextField():void {
//sort of the formatting
sgeFormat.size = sgeTextSize;
sgeFormat.align = TextFormatAlign.LEFT;
sgeFormat.font = 'Arial';
sgeFormat.color = (0xffffff);
sgeFormat.leading = 5;
sgeFormat.kerning = 10;
sgeFormat.letterSpacing = 0.7;
//create the textfield
sgeTextField.defaultTextFormat = sgeFormat;
sgeTextField.htmlText = sgeText;
sgeTextField.width = sgeWidth;
sgeTextField.height = sgeHeight - 20;
sgeTextField.wordWrap = true;
sgeTextField.selectable = false;
sgeTextField.x = 10;
sgeTextField.y = 10;
sgeTextField.mouseEnabled = false;
addChild(sgeTextField);
}
public function simpleGUIElementResize(animTime:int, newWidth:int, newHeight:int):void {
TweenMax.to(sgeSprite, animTime, {width:newWidth, height:newHeight});
}
}
}很抱歉,您的代码可以正常工作。
(点击stage调整大小)。Ye,这毫无意义,它只在一个项目中完成。这让我很困惑。你的问题在其他地方。似乎是佛罗里达州的某个地方出了问题,创建了一个全新的项目,问题就消失了。