Я нашел этот код онлайн, и он достиг определенного движения, которое я хочу использовать. К сожалению, он использует числовые значения вместо текста. Я выполнил все его инструкции, но я попытался заменить Vector массивом и получил ошибку. Ошибка, которую я получал, это «1199: введите параметры с непараметрированным типом». Это потому, что я добавил значение массива вместо вектора, который сделал этот парень. То, что он имеет в своем учебнике, соответствует числовым значениям. Также он создал класс .as под названием Item.as. Вот код AS, который находится в основной временной шкале в новом слое под названием действия моего файла .fla называется rotate.fla:AS3 Вращающийся текст вокруг исправленного изображения
//Save the center coordinates of the stage
var centerX:Number=stage.stageWidth/2;
var centerY:Number=stage.stageHeight/2;
//The number of items we will have (feel free to change!)
var NUMBER_OF_ITEMS:uint=6;
//Radius of the menu circle (horizontal and vertical)
var radiusX:Number=200;
var radiusY:Number=100;
//Angle difference between the items (in radians)
var angleDifference:Number = Math.PI * (360/NUMBER_OF_ITEMS)/180;
//How fast a single circle moves (we calculate the speed
//according to the mouse position later on...)
var angleSpeed:Number=0;
//Scaling speed of a single circle
var scaleSpeed:Number=0.0002;
//This vector holds all the items
//(this could also be an array...)
var itemVector:Array.<Item>=new Array('1', '2', '3', '4', '5').<Item>;
//This loop creates the items and positions them
//on the stage
for (var i:uint = 0; i < NUMBER_OF_ITEMS; i++) {
//Create a new menu item
var item:Item = new Item();
//Get the angle for the item (we space the items evenly)
var startingAngle:Number=angleDifference*i;
//Set the x and y coordinates
item.x=centerX+radiusX*Math.cos(startingAngle);
item.y=centerY+radiusY*Math.sin(startingAngle);
//Save the starting angle of the item.
//(We have declared the Item class to be dymamic. Therefore,
//we can create new properties dynamically.)
item.angle=startingAngle;
//Add an item number to the item's text field
item.itemText.text=i.toString();
//Allow no mouse children
item.mouseChildren=false;
//Add the item to the vector
itemVector.push(item);
//Add the item to the stage
addChild(item);
}
//We use ENTER_FRAME to animate the items
addEventListener(Event.ENTER_FRAME, enterFrameHandler);
//This function is called in each frame
function enterFrameHandler(e:Event):void {
//Calculate the angle speed according to mouse position
angleSpeed = (mouseX - centerX)/5000;
//Loop through the vector
for (var i:uint = 0; i < NUMBER_OF_ITEMS; i++) {
//Save the item to a local variable
var item:Item=itemVector[i];
//Update the angle
item.angle+=angleSpeed;
//Set the new coordinates
item.x=centerX+radiusX*Math.cos(item.angle);
item.y=centerY+radiusY*Math.sin(item.angle);
//Calculate the vertical distance from centerY to the item
var dy:Number=centerY-item.y;
//Scale the item according to vertical distance
item.scaleY = (dy/radiusY);
//If we are above centerY, double the y scale
if (item.y<centerY) {
item.scaleY*=2;
}
//Set the x scale to be the same as y scale
item.scaleX=item.scaleY;
//Adjust the alpha according to y scale
item.alpha=item.scaleY+1.1;
}
}
}
Кроме того, как указано есть .as класс называется Item.as. Это находится в отдельном файле. Код выглядит следующим образом:
package {
import flash.display.MovieClip;
public dynamic class Item extends MovieClip {
public function Item() {
}
}
}
Если вы будете следовать его указаниям, он будет работать для числового значения, но я хочу использовать массив и поместить строковые значения из массива внутри клипа Item фильма, где вы увидите, что числовые значения находятся внутри формы круга. У меня есть ссылка на его руководство по поворотному меню, где это 9 шагов. Вот ссылка:
Спасибо всем за вашу помощь. Я только что вернулся в ActionScript/Flash
Эй, это работает для меня. Большое спасибо за это. Еще один вопрос для вас. Когда я запускаю его, он показывает повторяющееся значение (скажем, буква a появляется дважды), является ли это внутри значения цикла, когда оно показывает количество элементов? – DC724
Я не совсем понимаю, что вы подразумеваете под двойным значением. Где он появляется? – 31eee384
Появляется после запуска анимации. Поэтому скажем, что у меня размер вектора 9, и значение отображается в 0 и 1 позиции (0 = "a" 1 = "a"). Не могли бы вы написать для каждого цикла для проверки повторяющихся значений в векторе и выталкивать одно из повторяющихся значений. – DC724