Тема: haxe
Показать сообщение отдельно
Старый 11.10.2016, 07:14
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 15  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Вот сейчас установил, и что-то я не могу понять. Получается, что нельзя писать код под флеш платформу, а собрать в JS?
Допустим я хочу использовать flash.display.Sprite чтобы создать простой спрайт с заливкой, но чтобы он отображался прямо в браузере, без флеш плеера.
Если я ставлю платформу JavaScript, то не могу использовать флешевские классы. А если ставлю платформу Flash Player, то прога запустится через флеш плеер.
В чем подвох? Получается, что все равно нужно учить новый API для каждой платформы?
Где-то на форуме хекса откопал, что есть jeash, но при попытке установить как там написано, получаю в командной строке Error: No such project. Видимо инфа устаревшая

Разобрался. Короче haxe.org катострофически не хватает систематизации информации. old.haxe.org вообще нужно было давно закрыть и удалить. Поисковик ведет в основном туда, но практически ничего оттуда в новых версиях уже не работает.

В общем, чтобы запилить html5 проект в haxe но использовать при этом привычный flash api нужно:
1) (Опционально) Установить HaxeDevelop или FlashDevelop (если у кого-то вдруг нет)
2) Установить haxelib
3) После установки haxelib запускаем командную строку и пишем
haxelib install openfl
(ждем)
дальше
haxelib install nme
(ждем)
дальше
haxelib install actuate
ждем

4) Открываем HaxeDevelop / FlashDevelop и создаем проект OpenFL.
По умолчанию он уже импортирует все что нужно для запуска.
После чего используем вместо слова flash в названиях пакетов openfl, и пишем привычный код
Собственно, вот код тестового файла
Код AS3:
package;
 
import openfl.display.Sprite;
import openfl.Lib;
 
 
class Main extends Sprite {
 
	public function new() {
		super();
		var sprite:Sprite = new Sprite();
		sprite.graphics.beginFill(0xFFFF00);
		sprite.graphics.drawCircle(0, 0, 20);
		sprite.graphics.endFill();
		sprite.x = 200;
		sprite.y = 200;
		addChild(sprite);
		// Assets:
		// openfl.Assets.getBitmapData("img/assetname.jpg");
	}
 
}
Который выдаст в браузере вот это
Миниатюры
Нажмите на изображение для увеличения
Название: Screenshot_2.png
Просмотров: 60
Размер:	5.1 Кб
ID:	32357  
__________________
Ко мне можно и нужно обращаться на ты)


Последний раз редактировалось caseyryan; 11.10.2016 в 08:32.