Во Flash, как вы можете дать графическому изображению имя экземпляра (для доступа к нему в AS)? - PullRequest
0 голосов
/ 18 февраля 2012

Новое для прошивки.Играя с фиктивным приложением-учебником, мы увидели, что когда мы добавили текстовое поле к слою, Flash позволил нам дать ему имя экземпляра, которое затем было доступно нам в ActionScript для таких вещей, как настройка его текста, размера илиvisibility.

Однако, когда мы добавили png-файл, не было места для ввода имени экземпляра, поэтому я не уверен, как мы получаем доступ к этому объекту из ActionScript.

Теперь я знаюЯ могу просто назначить изображение своему собственному слою, чем манипулировать слоем, но в нашем случае у нас есть матрица изображений 6 × 6, которую нам просто нужно показать или скрыть по отдельности, и создать 36 слоев (в отличие от одногослой с 36 изображениями на нем) просто кажется мне сумасшедшим!

Так как же вы можете нацеливать определенные изображения на слой из ActionScript?

1 Ответ

0 голосов
/ 18 февраля 2012

Если вы планируете хранить вещи на сцене / временной шкале, то:

Выберите изображение, нажмите «Изменить»> «Преобразовать в символ».Оттуда вы сможете превратить его в MovieClip и назначить имена экземпляров MovieClips.

ОБНОВЛЕНИЕ:
Если у вас есть 36копии того же растрового изображения, с которым вы можете взаимодействовать с помощью ActionScript, вам лучше создать экземпляр всех этих экземпляров программным способом:

Преобразовать растровое изображение в мувиклип, как указано выше.Этот символ теперь находится в вашей библиотеке - щелкните по нему правой кнопкой мыши и выберите «Свойства».В разделе «ActionScript Linkage» нажмите, чтобы включить «Экспорт для ActionScript».В диалоге «Класс» дайте ему имя класса, например MyBitmapClass.Теперь вы сделали этот MovieClip доступным как класс.

Чтобы создать 36 его копий на сцене программным способом:

var numberOfCopies:int = 36;
var myBitmaps:Array = [];

for (var i:int = 0; i < numberOfCopies; i++)
{
    var myBitmap:MyBitmapClass = new MyBitmapClass();
    addChild(myBitmap);

    myBitmaps[i] = myBitmap;
}

Конечно, все, что вы увидите, запустив этотэто «одно» растровое изображение, потому что все 36 лежат друг на друге.Чтобы переместить отдельное растровое изображение, вы можете получить доступ к его экземпляру через массив, который мы создали:

//move myBitmap #5 to an x position of 200 and y position of 500;
myBitmaps[4].x = 200;
myBitmaps[4].y = 500;

(Имейте в виду, что позиции массива начинаются с 0, поэтому именно растровое изображение № 5 фактически имеет индекс 4 -0, 1, 2, 3, 4 )

...