Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 27.06.2014, 13:39
Маруська вне форума Посмотреть профиль Отправить личное сообщение для Маруська Найти все сообщения от Маруська
  № 1  
Ответить с цитированием
Маруська

Регистрация: Feb 2012
Сообщений: 205
По умолчанию передать картинку из Сцены в Класс

есть у меня .fla в библиотеке которого лежит картинка.
и Класс, который изначально подгружал в себя картинку с сервера, но необходимость пока отпала и нужно делать полностью локальную версию.
и вот в чём вопрос: как передать картинку из библиотеки в класс? Какой объект создать в основном fla? Какие свойства ему дать? и каким параметром передавать в класс?

Сейчас вот так подключаю класс:
Код AS3:
h.addChild(new TestSwirl());
Хочу, чтобы срабатывало как-то так:
Код AS3:
package 
{	
    public class TestSwirl extends Sprite
    {
        private var swirl:Swirl;
 
        public function TestSwirl(some_object_From_main_library)
        {   
            var original:Bitmap = some_object_From_main_library.content as Bitmap;
            swirlBitmap.bitmapData = original.bitmapData.clone();
 
            addChild(swirlBitmap); 
       }
}
Подскажите, как точно это делать?

Добавлено через 19 минут
Код AS3:
var whoData:who = new who();
var whoBitmap:Bitmap = new Bitmap(whoData);
h.addChild(new TestSwirl(whoBitmap));
в свойствах картинки написала импорт в AS и создала ей класс who

Компилятор не ругается, но
ReferenceError: Error #1069: Не удалось найти свойство content в flash.display.Bitmap; отсутствует значение по умолчанию.
at TestSwirl()
at _fla::MainTimeline/frame1()


Последний раз редактировалось Маруська; 27.06.2014 в 14:02.
Старый 27.06.2014, 14:24
alexandrratush вне форума Посмотреть профиль Отправить личное сообщение для alexandrratush Найти все сообщения от alexandrratush
  № 2  
Ответить с цитированием
alexandrratush
 
Аватар для alexandrratush

Регистрация: Jul 2013
Адрес: Днепр
Сообщений: 529
Отправить сообщение для alexandrratush с помощью ICQ Отправить сообщение для alexandrratush с помощью Skype™
Вот так это делается:
Код AS3:
var bm:Bitmap = new Bitmap(new who());
addChild(bm);
Добавлено через 8 минут
Непонятно, зачем вы в конструкторе класса TestSwirl опять пытаетесь что-то сделать.
Может просто так:
Код AS3:
public function TestSwirl(some_object_From_main_library:Bitmap)
{   
    addChild(some_object_From_main_library); 
}

Старый 27.06.2014, 14:37
Маруська вне форума Посмотреть профиль Отправить личное сообщение для Маруська Найти все сообщения от Маруська
  № 3  
Ответить с цитированием
Маруська

Регистрация: Feb 2012
Сообщений: 205
Ваш вариант просто добавляет объект с картинкой на сцену, а мне его надо в класс передать, чтобы там дальше ещё работа с этой картинкой шла

Задача у меня такая: передать изображение в класс

Старый 27.06.2014, 15:00
alexandrratush вне форума Посмотреть профиль Отправить личное сообщение для alexandrratush Найти все сообщения от alexandrratush
  № 4  
Ответить с цитированием
alexandrratush
 
Аватар для alexandrratush

Регистрация: Jul 2013
Адрес: Днепр
Сообщений: 529
Отправить сообщение для alexandrratush с помощью ICQ Отправить сообщение для alexandrratush с помощью Skype™
Тогда можно так:
Код AS3:
package 
{	
    public class TestSwirl extends Sprite
    {
        private var _bm:Bitmap;
 
        public function TestSwirl(bm:Bitmap)
        {   
            _bm = bm;
        }
}
}
И дальше работаете с объектом Bitmap.

Старый 27.06.2014, 15:12
Маруська вне форума Посмотреть профиль Отправить личное сообщение для Маруська Найти все сообщения от Маруська
  № 5  
Ответить с цитированием
Маруська

Регистрация: Feb 2012
Сообщений: 205
Код AS3:
package 
{
 
    public class TestSwirl extends Sprite
    {
        private const swirlBitmap:Bitmap = new Bitmap();
        private var swirl:Swirl;
 
        public function TestSwirl(bm:Bitmap)
        {
	         swirlBitmap.bitmapData =bm.bitmapData       
            addChild(swirlBitmap); 
         }
    }
}
всё передаётся, но
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".

Старый 27.06.2014, 15:38
alexandrratush вне форума Посмотреть профиль Отправить личное сообщение для alexandrratush Найти все сообщения от alexandrratush
  № 6  
Ответить с цитированием
alexandrratush
 
Аватар для alexandrratush

Регистрация: Jul 2013
Адрес: Днепр
Сообщений: 529
Отправить сообщение для alexandrratush с помощью ICQ Отправить сообщение для alexandrratush с помощью Skype™
Тут все верно, ошибка не в этом коде.

Старый 27.06.2014, 15:48
Маруська вне форума Посмотреть профиль Отправить личное сообщение для Маруська Найти все сообщения от Маруська
  № 7  
Ответить с цитированием
Маруська

Регистрация: Feb 2012
Сообщений: 205
Цитата:
Сообщение от alexandrratush Посмотреть сообщение
Тут все верно, ошибка не в этом коде.
в самом деле. спасибо

Старый 27.06.2014, 15:50
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 8  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Скорее всего вы неправильно создаёте битмап на сцене. В вашем случае надо так:
Код AS3:
var swirlTest:TestSwirl=new TestSwirl(new Bitmap(new who(1,1)));

Старый 27.06.2014, 16:08
Маруська вне форума Посмотреть профиль Отправить личное сообщение для Маруська Найти все сообщения от Маруська
  № 9  
Ответить с цитированием
Маруська

Регистрация: Feb 2012
Сообщений: 205
Цитата:
Сообщение от samana Посмотреть сообщение
Скорее всего вы неправильно создаёте битмап на сцене. В вашем случае надо так:
Код AS3:
var swirlTest:TestSwirl=new TestSwirl(new Bitmap(new who(1,1)));
всё хорошо, просто я глупая =) спасибо всем большое


Последний раз редактировалось Маруська; 27.06.2014 в 16:19.
Создать новую тему Ответ Часовой пояс GMT +4, время: 20:35.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 20:35.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.