Skip to content

Commit 099b7c1

Browse files
committed
Version 1.0 of the Flash to Phaser JSFL Script.
1 parent 0c76e9a commit 099b7c1

1 file changed

Lines changed: 191 additions & 0 deletions

File tree

Lines changed: 191 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,191 @@
1+
/**
2+
* @desc Flash to Phaser JSFL
3+
* @version 1.0 - May 28th 2014
4+
* @author Richard Davey <rich@photonstorm.com>
5+
* @copyright 2014 Photon Storm Ltd.
6+
* @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}
7+
*/
8+
9+
var getTotal = function (name) {
10+
11+
var t = 0;
12+
13+
for (var i = 0; i < totals.length; i++)
14+
{
15+
if (totals[i] === name)
16+
{
17+
t++;
18+
}
19+
}
20+
21+
totals.push(name);
22+
23+
if (t == 0)
24+
{
25+
return '';
26+
}
27+
else
28+
{
29+
return t.toString();
30+
}
31+
32+
}
33+
34+
var addBitmap = function (element, group) {
35+
36+
var png = element.libraryItem.name;
37+
var name = png.substr(0, png.length - 4);
38+
var local = name + getTotal(name);
39+
var x = element.x;
40+
var y = element.y;
41+
var r = element.rotation;
42+
var sx = element.scaleX;
43+
var sy = element.scaleY;
44+
45+
if (round)
46+
{
47+
x = Math.round(x);
48+
y = Math.round(y);
49+
}
50+
51+
//fl.trace('Bitmap: ' + name + ' x: ' + x + ' y: ' + y + ' r: ' + r + ' sx: ' + sx + ' sy: ' + sy);
52+
53+
// Save to preload array
54+
if (preload.indexOf(png) == -1)
55+
{
56+
preload.push(png);
57+
}
58+
59+
// Save to the create array
60+
if (group == '')
61+
{
62+
create = create.concat(" var " + local + " = game.add.sprite(" + x + ", " + y + ", '" + name + "');\n");
63+
64+
if (r !== 0)
65+
{
66+
create = create.concat(" " + local + ".angle = " + r + ";\n");
67+
}
68+
69+
if (sx !== 1 || sy !== 1)
70+
{
71+
create = create.concat(" " + local + ".scale.set(" + sx + ", " + sy + ");\n");
72+
}
73+
74+
create = create.concat("\n");
75+
}
76+
else
77+
{
78+
create = create.concat(" var " + local + " = " + group + ".create(" + x + ", " + y + ", '" + name + "');\n");
79+
80+
if (r !== 0)
81+
{
82+
create = create.concat(" " + local + ".angle = " + r + ";\n");
83+
}
84+
85+
if (sx !== 1 || sy !== 1)
86+
{
87+
create = create.concat(" " + local + ".scale.set(" + sx + ", " + sy + ");\n");
88+
}
89+
90+
create = create.concat("\n");
91+
}
92+
93+
}
94+
95+
var addGroup = function (element) {
96+
97+
// lower-case first character and remove spaces
98+
var name = element.libraryItem.name.replace(" ", "");
99+
var first = name.substr(0, 1).toLowerCase();
100+
name = first + name.substr(1, name.length - 1);
101+
var local = name + getTotal(name);
102+
var children = element.libraryItem.timeline.layers[0].frames[0].elements;
103+
104+
var x = element.x;
105+
var y = element.y;
106+
var r = element.rotation;
107+
var sx = element.scaleX;
108+
var sy = element.scaleY;
109+
110+
if (round)
111+
{
112+
x = Math.round(x);
113+
y = Math.round(y);
114+
}
115+
116+
create = create.concat(" var " + local + " = game.add.group();\n");
117+
create = create.concat(" " + local + ".x = " + x + ";\n");
118+
create = create.concat(" " + local + ".y = " + y + ";\n");
119+
120+
if (r !== 0)
121+
{
122+
create = create.concat(" " + local + ".angle = " + r + ";\n");
123+
}
124+
125+
if (sx !== 1 || sy !== 1)
126+
{
127+
create = create.concat(" " + local + ".scale.set(" + sx + ", " + sy + ");\n");
128+
}
129+
130+
create = create.concat("\n");
131+
132+
//fl.trace('Group: ' + name + ' x: ' + x + ' y: ' + y + ' r: ' + element.rotation);
133+
134+
for (var i = 0; i < children.length; i++)
135+
{
136+
if (children[i].instanceType == "bitmap")
137+
{
138+
addBitmap(children[i], name);
139+
}
140+
}
141+
142+
}
143+
144+
fl.outputPanel.clear();
145+
146+
var totals = new Array();
147+
var round = true;
148+
var preload = new Array();
149+
var create = "function create() {\n\n";
150+
var stage = fl.getDocumentDOM().getTimeline().layers[0].frames[0].elements;
151+
152+
for (var i = 0; i < stage.length; i++)
153+
{
154+
if (stage[i].instanceType == "bitmap")
155+
{
156+
addBitmap(stage[i], '');
157+
}
158+
else if (stage[i].instanceType == "symbol")
159+
{
160+
addGroup(stage[i]);
161+
}
162+
}
163+
164+
create = create.concat("}");
165+
166+
var output = "// Generated by Flash to Phaser v1.0 at " + new Date().toUTCString() + "\n\n";
167+
168+
output = output.concat("\n");
169+
output = output.concat('function preload() {');
170+
output = output.concat("\n\n");
171+
172+
// Preload block
173+
// game.load.image('defaultFont', '../../assets/fonts/arcadefonts/waku-Waku Waku 7 (Sunsoft).png');
174+
175+
for (var i = 0; i < preload.length; i++)
176+
{
177+
var name = preload[i].substr(0, preload[i].length - 4);
178+
output = output.concat(" game.load.image('" + name + "', '" + preload[i] + "');\n");
179+
}
180+
181+
output = output.concat("\n");
182+
output = output.concat('}');
183+
output = output.concat("\n\n");
184+
output = output.concat(create);
185+
186+
fl.trace("Generating ...");
187+
var f = fl.browseForFileURL("save", "Select a JS", "Phaser JS Document (*.js)", "js");
188+
fl.outputPanel.clear();
189+
fl.trace(output);
190+
fl.outputPanel.save(f);
191+
fl.trace("Saved to " + f);

0 commit comments

Comments
 (0)