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

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

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

Регистрация: Mar 2012
Сообщений: 5
По умолчанию Импорт классов из загруженной SWF.

Добрый день, перерыл уже кучу информации, но никак не могу решить задачку.
Я делаю игру PixelShooter. Программирую в IntelliJ IDEA на as 3.0. Всем известно, что для качественной игры различные объекты (в моем случае космический корабль пришельцев) можно нарисовать в Adobe Flash Professional, а затем загрузить в проект, разрабатываемый на IDEA.
В Adobe Flash Professional я создал проект fla, нарисовал космический корабль, создал из него символ, обозвав enemy. В свойствах объекта я поставил галочку "Export for ActionScript" и класс назвал EnemyImage. Базовый класс MovieClip. Далее я создал swf файл с моим космическим кораблем.

В проект на IDEA я импортирую swf файл следующим образом:
Код AS3:
 
public class Game extends MovieClip {
[Embed(source="../source/resources/shooter.swf", symbol="EnemyImage")]
private var _EnemyImage:Class;
 
public function makeEnemies():void {
            var chance:int = Math.floor(Math.random() * 100);
            var tempEnemy:MovieClip;
            if (chance < 2 + level) {
                tempEnemy = new _EnemyImage as MovieClip;
                tempEnemy.speed = 1 + level;
                tempEnemy.y = -25;
                tempEnemy.x = Math.floor(Math.random() * 515);
                addChild(tempEnemy);
                enemies.push(tempEnemy);
            }
        }
}
Выходит вот такая ошибка:
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
at Game/makeEnemies()[C:\ideaProject\PixelShooter\media\Game.as:147]

147 строка это строка:
tempEnemy.speed = 1 + level; // в этой строке я задаю динамической свойство speed.


P.S. читал что можно грузить swf полностью в проект и пользоваться всеми классами, находящимися внутри, пробовал реализовать - не получилось, может кто-нибудь помочь?

Старый 30.03.2012, 10:34
Fillini вне форума Посмотреть профиль Отправить личное сообщение для Fillini Найти все сообщения от Fillini
  № 2  
Ответить с цитированием
Fillini
 
Аватар для Fillini

Регистрация: Nov 2008
Адрес: Казахстан
Сообщений: 204
Отправить сообщение для Fillini с помощью ICQ
getDefinitionByName - читайте про это.

Создать новую тему Ответ Часовой пояс GMT +4, время: 21:41.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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