だから、私はいくつかのムービークリップを取得して、その前駆体を追跡し、最後のものをマウスに追従させようとしています。問題は、インターフェイスを使用する代わりにコードからそれらを作成していることです。私は専門家ではないため、それらを機能させることができません。
私がライブラリに持っているのは、内部に textField を含む MovieClip(linkage:"LETRA") (インスタンス名:"myTextField") だけです。
ここに私が持っているものがあります:
import flashx.textLayout.operations.MoveChildrenOperation;
import flash.display.MovieClip;
import flash.events.Event;
//this are the letters that will be following the mouse
var phrase:Array = ["H","a","c","e","r"," ","u","n"," ","p","u","e","n","t","e"];
//variable to spread them instead of creating them one of top of each other
var posXLetter:Number = 0;
//looping through my array
for (var i:Number = 0; i < phrase.length; i++)
{
//create an instance of the LETRA movieclip which contains a text field inside
var newLetter:MovieClip = new LETRA();
//assing a letter to that text field matching the position of the phrase array
newLetter.myTextField.text = phrase[i];
//assign X position to the letter I'm going to add
newLetter.x = posXLetter;
//add properties for storing the letter position
var distx:Number = 0;
var disty:Number = 0;
//add the listener and the function which will move each letter
newLetter.addEventListener(Event.ENTER_FRAME, moveLetter);
function moveLetter(e:Event){
distx = newLetter.x - mouseX;
disty = newLetter.y - mouseY;
newLetter.x -= distx / 10;
newLetter.y -= disty / 10;
}
//add each letter to the stage
stage.addChild(newLetter);
//increment the next letter's x position
posXLetter += 9;
}
このコードでは、1 つの文字 (「E」) だけがマウスの後に続き、残りは addChild と posXLetter 変数を使用して追加した場所にとどまります。
また、トレイルのように動作するようにしようとしているので、上に移動すると、文字が私の下に遅れます。左に移動すると、文字は右に遅れますが、現在のアプローチでは、A) すべて一緒に同じ場所に移動するか、B) 常にカーソルの左側にぶら下がっていると思います.
助けてくれてありがとう。