Giter VIP home page Giter VIP logo

spriteflexjs's Introduction

spriteflexjs

a html5 engine build with apache-royale.

the spriteflexjs support most flash runtime api.

support canvas and webgl.

100% ActionScript written code base

Quick Links

Roadmap

Roadmap

微信小游戏适配

更改game.js

import './js/libs/weapp-adapter'
import "TestMinGame"
var canvas = window.canvas;
canvas.id = "spriteflexjsstage";//小游戏只有一个画布显示 如果是stage3d用这个id "spriteflexjsstage3d0"
new TestMinGame();

更改代码的 xxx=this ,变成 xxx=window

因为小游戏this为null

代码要大于500k,如果小于500k。小游戏进行es6转换,会导致编辑器卡死

视频教程

IMAGE ALT TEXT HERE

IMAGE ALT TEXT HERE

spriteflexjs's People

Contributors

diamanter avatar harbs avatar joshtynjala avatar juntaosun avatar kennylerma avatar lizhi525 avatar matrix3d avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

spriteflexjs's Issues

Compatibility with Royale 0.9.4

Hi, i'm using Royale 0.9.4, i made a simple test.bat following the example, and it don't work, are there limitation with the Royale version ?

set FLEX_HOME=C:\SDK\Royale\royale-asjs
set main=TestBitmapDataSand

set ARGS=-remove-circulars
start %FLEX_HOME%/js/bin/mxmlc %ARGS% -external-library-path="%FLEX_HOME%\js\libs\js.swc" -compiler.source-path=../src src/%main%.as -define=CONFIG::as_only,false -define=CONFIG::js_only,true

Using Royale Compiler codebase: C:\SDK\Royale\royale-asjs\js\bin....
Using Royale SDK: C:\SDK\Royale\royale-asjs\js\bin....
MXMLJSC
-sdk-js-lib=C:\SDK\Royale\royale-asjs\js\bin....\frameworks\js\Royale\generated-sources
-remove-circulars
-external-library-path=C:\SDK\Royale\royale-asjs\js\libs\js.swc
-compiler.source-path=../src
src/TestBitmapDataSand.as
-define=CONFIG::as_only,false
-define=CONFIG::js_only,true
Chargement de la configuration : C:\SDK\Royale\royale-asjs\frameworks\royale-config.xml

scanning for overrides: IEventDispatcher
scanning for overrides: EventDispatcher
scanning for overrides: IBitmapDrawable
scanning for overrides: DisplayObject
scanning for overrides: InteractiveObject
scanning for overrides: DisplayObjectContainer
scanning for overrides: Sprite
scanning for overrides: TestBitmapDataSand
scanning for overrides: P
scanning for overrides: BitmapFilter
scanning for overrides: DropShadowFilter
scanning for overrides: BitmapData
scanning for overrides: Bitmap
scanning for overrides: LoaderInfo
scanning for overrides: Point
scanning for overrides: Stage
scanning for overrides: Graphics
scanning for overrides: Matrix
scanning for overrides: BlendMode
scanning for overrides: GlowFilter
scanning for overrides: Transform
scanning for overrides: SpriteFlexjs
scanning for overrides: Rectangle
scanning for overrides: Vector3D
scanning for overrides: Event
scanning for overrides: MouseEvent
scanning for overrides: IGraphicsFill
scanning for overrides: IGraphicsPath
scanning for overrides: URLVariables
scanning for overrides: StageAlign
scanning for overrides: Stage3D
scanning for overrides: IGraphicsData
scanning for overrides: GraphicsSolidFill
scanning for overrides: GraphicsGradientFill
scanning for overrides: IRenderer
scanning for overrides: GraphicsEndFill
scanning for overrides: ColorTransform
scanning for overrides: NativeMenu
scanning for overrides: ContextMenu
scanning for overrides: TextSnapshot
scanning for overrides: KeyboardEvent
scanning for overrides: IDataInput
scanning for overrides: IDataInput2
scanning for overrides: IDataOutput
scanning for overrides: IDataOutput2
scanning for overrides: ByteArray
scanning for overrides: GraphicsBitmapFill
scanning for overrides: BitmapDataChannel
scanning for overrides: Loader
scanning for overrides: Matrix3D
scanning for overrides: BaseRenderer
scanning for overrides: AccessibilityImplementation
scanning for overrides: GLCanvasRenderingContext2D
scanning for overrides: StageScaleMode
scanning for overrides: GraphicsPath
scanning for overrides: StageQuality
scanning for overrides: GraphicsTrianglePath
scanning for overrides: AccessibilityProperties
scanning for overrides: TouchEvent
scanning for overrides: PerspectiveProjection
scanning for overrides: WebGLRenderer
scanning for overrides: IGraphicsStroke
scanning for overrides: BitmapTexture
scanning for overrides: GraphicsStroke
scanning for overrides: GLGraphicsPath
scanning for overrides: Context3DTextureFormat
scanning for overrides: TextureBase
scanning for overrides: Texture
scanning for overrides: ContextMenuClipboardItems
scanning for overrides: GLVertexBufferSet
scanning for overrides: TextFormat
scanning for overrides: Context3DVertexBufferFormat
scanning for overrides: GLIndexBufferSet
scanning for overrides: Context3DProgramType
scanning for overrides: Context3DBlendFactor
scanning for overrides: Endian
scanning for overrides: Context3DTriangleFace
scanning for overrides: GLCanvasPattern
scanning for overrides: URLRequest
scanning for overrides: Orientation3D
scanning for overrides: Context3D
scanning for overrides: GLDrawable
scanning for overrides: GLPath2D
scanning for overrides: Program3D
scanning for overrides: GraphicsPathCommand
scanning for overrides: GradientType
scanning for overrides: LoaderContext
scanning for overrides: ContextMenuBuiltInItems
scanning for overrides: Context3DCompareMode
scanning for overrides: IndexBuffer3D
scanning for overrides: MemArray
scanning for overrides: VideoTexture
scanning for overrides: RectangleTexture
scanning for overrides: VertexBuffer3D
scanning for overrides: CubeTexture
C:\Users\user\Desktop\spriteflexjs-master\src\flash\display\Stage.as(281): col: 3 Erreurá: A conflict exists with inherited definition __update in class flash.display.DisplayObjectContainer.

            private function __update():void {
            ^

C:\Users\user\Desktop\spriteflexjs-master\src\flash\display\Stage.as(410): col: 3 Erreurá: A conflict exists with inherited definition constructor in class Object.

            public function get constructor ():* { return _constructor; }
            ^

C:\Users\user\Desktop\spriteflexjs-master\src\flash\display\Stage.as(411): col: 3 Erreurá: A conflict exists with inherited definition constructor in class Object.

            public function set constructor (c:*):void { _constructor = c; }
            ^

C:\Users\user\Desktop\spriteflexjs-master\src\flash\display\Stage.as(1023): col: 3 Erreurá: A conflict exists with inherited definition transform in class flash.display.DisplayObject.

            public function set transform (value:Transform):void { _transform = value; }
            ^

C:\Users\user\Desktop\spriteflexjs-master\src\flash\display\Stage.as(281): col: 3 Erreurá: A conflict exists with inherited definition __update in class flash.display.DisplayObjectContainer.

            private function __update():void {
            ^

C:\Users\user\Desktop\spriteflexjs-master\src\flash\display\Stage.as(410): col: 3 Erreurá: A conflict exists with inherited definition constructor in class Object.

            public function get constructor ():* { return _constructor; }
            ^

C:\Users\user\Desktop\spriteflexjs-master\src\flash\display\Stage.as(411): col: 3 Erreurá: A conflict exists with inherited definition constructor in class Object.

            public function set constructor (c:*):void { _constructor = c; }
            ^

C:\Users\user\Desktop\spriteflexjs-master\src\flash\display\Stage.as(1023): col: 3 Erreurá: A conflict exists with inherited definition transform in class flash.display.DisplayObject.

            public function set transform (value:Transform):void { _transform = value; }
            ^

10.3083943 seconds

Lack of maven support

Hi Lizhi,

you asked me about why I can't mvn compile. I think you refer to "mvn install". For this to happen you need to add a "pom.xml" to your root. I tried many time ago and I couldn't.

If you want to add maven support, you will need to do some changes to the project, like give a maven folder structure, or try to make pom.xml work with your actually. I recommed to switch to maven standard.

If you give a try, you'll see is not direct.

Thanks

How to setup display objects with custom blendmode?

I'm using PDParticleSystem library in my as3 project: Sprite + many Shapes with blendMode="add".

How to make WebGLRenderer to use blendMode "add"? I see some javascript objects pass blendmode parameter, but I'm not sure how to use it for Shape/pack of Shapes.

Could you help, please?

Can't compile

Hi, great framework, but I wasn't able to compile using FlexJS using terminal in mac
or using FDT because is always pointing to the playerglobal.swc instead of using the flash folder you provided.

Thanks

Feb 15, 2016 3:23:40 PM com.google.javascript.jscomp.LoggerErrorManager println
SEVERE: /Documents/spriteflexjs/test/bin/js-debug/com/hsharma/hungryHero/screens/InGame.js:28: ERROR - required "flash.utils.getTimer" namespace never provided
goog.require('flash.utils.getTimer');
^

Feb 15, 2016 3:23:40 PM com.google.javascript.jscomp.LoggerErrorManager println
SEVERE: /Documents/spriteflexjs/test/bin/js-debug/com/hsharma/hungryHero/screens/Welcome.js:13: ERROR - required "flash.net.navigateToURL" namespace never provided
goog.require('flash.net.navigateToURL');
^

Feb 15, 2016 3:23:40 PM com.google.javascript.jscomp.LoggerErrorManager println
SEVERE: /Documents/spriteflexjs/test/bin/js-debug/flash/display/DisplayObject.js:17: ERROR - required "flash.utils.getTimer" namespace never provided
goog.require('flash.utils.getTimer');
^

Feb 15, 2016 3:23:40 PM com.google.javascript.jscomp.LoggerErrorManager println
SEVERE: /Documents/spriteflexjs/test/bin/js-debug/flash/display/Stage.js:16: ERROR - required "flash.utils.getTimer" namespace never provided
goog.require('flash.utils.getTimer');

Problem with scaled beginBitmapFill

I found that several beginBitmapFill with scaled matrix work wrong.

for (var i:int=0; i<numChars; ++i) {
    target.beginBitmapFill(bmd, new Matrix(0.5,0,0,0.5,0,0), true, true);
    target.drawRect(i*50, 0, 50, 50);
}

Only first bitmap fill works correctly. After that ctx.matr has wrong values.
I have no idea how to fix it in gldraw() without context.save() function.

position of filters

@kennylerma pls look at.the positon is 100px,but get 200px.

package  
{
	import flash.display.Sprite;
	import flash.filters.BlurFilter;
	import flash.filters.DropShadowFilter;
	/**
	 * ...
	 * @author lizhi
	 */
	public class TestFilter extends Sprite
	{
		
		public function TestFilter() 
		{
			SpriteFlexjs.debug = true;
			
			var b:Sprite = new Sprite;
			addChild(b);
			b.x = 100;
			
			var a:Sprite = new Sprite;
			a.graphics.beginFill(0);
			a.graphics.drawRect(0, 0, 100, 100);
			b.addChild(a);
			//a.cacheAsBitmap = true;
			
			//a.x = 100;
			
			a.filters = [new DropShadowFilter(2, 45, 0xff0000, 1, 2, 2, .3, 1,true)];
		}
		
	}

}

How to compile with FlexJS7?

I tried with the last sdk 7 version, but I got a few compilation errors:

Date.now(); <-- now() is not defined, I replaced with (new Date()).getTimer()
and
gl.uniform4fv(getUniformLocation(name), data); <--wrong data variable type. I replaced with:
gl.uniform4fv(getUniformLocation(name), Object(data));

But on runtime all test projects fail with "this.path is not defined".

How to get the correct SDK?

It was all OK a month ago with SDK 6.

required version

Hi lizhi, i try to transpile samples provided, but it no longer works, every sample ends with error :

C:\Users\spanvega\Desktop\matrix3d-spriteflexjs-369e8d1\src\flash\utils\getTimer.as:5
Call to a possibly undefined method now through a reference with static type Date.
return Date.now() - SpriteFlexjs.startTime;

I use flexjs 0.7 from latest Apache flex sdk

[MouseEvent] _sprite.graphics.lineTo/moveTo resulting to a DELAYED drawing

I'm testing classic source for 'drawing' line with mouse on the stage, this is the code

package
{
import flash.display.Sprite;
import flash.events.MouseEvent;

public class MouseEvt extends Sprite
{
	private var  _sprite:Sprite;
	
	public function MouseEvt()
	{		 
		_sprite=new Sprite();
		addChild(_sprite);
		_sprite.graphics.beginFill(0x556677);
		_sprite.graphics.drawRect(0,0,500,500);
		_sprite.graphics.endFill();
		
		_sprite.addEventListener(MouseEvent.MOUSE_DOWN,onMouseDown);
		_sprite.addEventListener(MouseEvent.MOUSE_UP,onMouseUp);
	}
	
	private function onMouseDown(e:MouseEvent):void
	{
		_sprite.graphics.lineStyle(3,0x551100,1);
		_sprite.graphics.moveTo(mouseX,mouseY);
		_sprite.addEventListener(MouseEvent.MOUSE_MOVE,onMouseMove);
	}
	
	private function onMouseUp(e:MouseEvent):void
	{
		_sprite.removeEventListener(MouseEvent.MOUSE_MOVE,onMouseMove);
	}
	
	private function onMouseMove(e:MouseEvent):void
	{
		_sprite.graphics.lineTo(mouseX,mouseY);
	} 
}
}

when compiled for SWF output via AIR SDK , resulting swf file handle the job sooo smoothly i.e. no delay when I click the mouse and start to moving it, it then draws the line.

While when compile to HTML+JS, the line will draws only after mouse's click is released.

spriteflexjs-mouse-delayed

System:

  • Java 8
  • Royale 0.9.6

Problem with Loader

Hello, when assembling any of your example, where external resources loading, can't get loader working

the project is going, but the resources just are not loaded, there is no such event as the end / error etc
added
imageloader.contentLoaderInfo.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
imageloader.contentLoaderInfo.addEventListener(Event.INIT, initHandler);
imageloader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
imageloader.contentLoaderInfo.addEventListener(Event.OPEN, openHandler);
imageloader.contentLoaderInfo.addEventListener("progress", progressHandler);
imageloader.contentLoaderInfo.addEventListener(Event.UNLOAD, unLoadHandler);

in bat pointed to last flexjs
set FLEX_HOME=D:/apache-flex-flexjs-0.6.0-bin

maybe u know what the problem? thank you
for example TestBitmapDataSand working well

and i notices that i dont have class Image which u r using in Loader(ide didnt see it at least)

JS problem

Hello, I'm trying to compile starling example https://github.com/matrix3d/Starling-Framework with https://github.com/matrix3d/spriteflexjs and FlexJS6.

Compilation is OK with your "build.bat" (if to add "BitmapData implements IBitmapDrawable") but I've got 3 errors on running:

Uncaught SyntaxError: Unexpected token ILLEGAL
Uncaught ReferenceError: org is not defined
Uncaught ArgumentError

I can fix 1 and 3 with a simple change, but I have no idea how to fix:

Stage.js: flash.display.Stage.prototype.__update = function() {
this.requestAnimationFrameHander = requestAnimationFrame(org.apache.flex.utils.Language.closure(this.__update, this, '__update'));

<-- ReferenceError: org is not defined

Maybe it lost some goog.require or goog.inherits? I'm not so good in Javascript, I know Actionscript.

Can you help, please? )

Denis.

Update WebGL texture

Another stupid question.
I need to use bitmapdata.draw(); This works fine before first use of this bitmapdata, BUT all runtime changes ignored in WebGL mode.

Is there a way to reupload bitmapdata pixels during runtime?

My test snippet, just added in TestBitmapDraw:
stage.addEventListener(MouseEvent.CLICK, function():void{bmd.fillRect(bmd.rect, 0xFFFF0000);});

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.