0

だから、私はいくつかのムービークリップを取得して、その前駆体を追跡し、最後のものをマウスに追従させようとしています。問題は、インターフェイスを使用する代わりにコードからそれらを作成していることです。私は専門家ではないため、それらを機能させることができません。

私がライブラリに持っているのは、内部に 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) 常にカーソルの左側にぶら下がっていると思います.

助けてくれてありがとう。

4

2 に答える 2