![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Jan 2012
Сообщений: 836
|
Всем привет. Пытаюсь сделать присвоение значения текстуре, которая обозначена переменной
private var texture_bg:Texture; private var gui_interface:Array = [ {target_texture:texture_bg} ]; gui_interface[0].target_texture = texture;//texture - какая-то сгенерированная текстура. gui_interface[0].target_texture.push(texture); То значение заносится непосредственно в приватную переменную, то есть как надо. Так почему не присваивается к обычной текстуре? |
|
|||||
|
Ну а почему она должна быть не пустой? Ты же не ей значение присваиваешь, а новой переменной target_texture. В итоге ты из переменной target_texture убираешь значение равное твоей texture_bg и присваиваешь туда новое значение. При этом переменную texture_bg ты вообще никак не трогаешь.
Не понятно что ты вообще пытаешься сделать
__________________
Ко мне можно и нужно обращаться на ты) |
|
|||||
|
Регистрация: Jan 2012
Сообщений: 836
|
Цитата:
Цитата:
Теперь, когда я замеряю length у vector_bg, он показывает не пустое число, а ровно столько, сколько было добавлено в массив через объект target_texture, если я добавляю в массив элемент для новой переменной, то почему элементы добавились в переменную класса, ссылку на которую я указал в target_texture? |
|
|||||
|
Потому что в первом случае, ты перезаписываешь значение переменной target_texture на другую ссылку, а во втором, ты его не трогаешь, а берешь массив, который висит на этой ссылке, и добавляешь что-то в него. target_texture так и продолжает ссылаться на этот массив.
__________________
Ко мне можно и нужно обращаться на ты) |
|
|||||
|
Регистрация: Jan 2012
Сообщений: 836
|
Как же тогда все таки через массив присвоить значение классовой переменной? Ибо сейчас тогда остается вариант, что создание объектов будет происходить только по элементам, через target_texture. Или создать специальный метод, где будет происходить присвоение классовым переменным, но тогда будет опять же куча if-ов
|
|
|||||
|
Задача непонятна. Объясни подробно что ты хочешь сделать и какой результат получить.
Для чего у тебя вообще этот массив? Ты хочешь рэндомные текстуры рендомным объектам присваивать что ли?
__________________
Ко мне можно и нужно обращаться на ты) |
|
|||||
|
Регистрация: Jan 2012
Сообщений: 836
|
Я не хочу постоянно создавать текстуры из сотен спрайтов, изначально получая ссылку на каждый объект, потом вынесение объекта в битмапдату, потом получение битмапы и уже в конце эту битмапу преобразовывать в текстуру(это если спрайт, а если мувик, еще надо по всем кадрам пробежаться). Даже если это атласы текстур их может быть прилично много. Тут уже несколько действий, а если спрайтов сотня, это получится очень много лишних строк. Другое дело, поместить все ссылки на спрайты/мувики в массив, указать ссылку на классовую переменную, в которой будет хранится текстура, свойственная загруженному объекту. Вместо тысячи строк присвоения, это все гораздо проще сделать через цикл и разок пробежаться по массиву всех объектов. После этой операции все текстуры у меня под рукой и я могу использовать их как угодно, обратившись к заявленной переменной, в которую эта текстура/текстуры были загружены. Хотя наверно будет проще идентифицировать объект в массиве и потом по указанному идентификатору получать текстуры, забив на классовые переменные.
|
|
|||||
|
Если ты используешь Starling, то там уже этот вопрос давно решен. Пользуйся AssetLoader'ом. У него есть метод getTexture, который позволяет получить любую текстуру по имени
__________________
Ко мне можно и нужно обращаться на ты) |
![]() |
![]() |
Часовой пояс GMT +4, время: 23:44. |
|
|
« Предыдущая тема | Следующая тема » |
|
|