| CaribbeanLegend |
05.08.2013 06:04 |
Не идет отрисовка
Всем добрый.
Проблема следующая: создаю игру под мобильные устройства на Flex. Возникла необходимость использовать фреймворк Starling.
Соотв., создаю объект Starling:
Program.as: (часть файла)
Код AS3:
public function Program()
{
Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;
addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
}
private function onAddedToStage(_evnt:Event):void
{
this.stage.scaleMode = StageScaleMode.NO_SCALE;
this.stage.align = StageAlign.TOP_LEFT;
StarlingRef = new Starling(TestStarling, stage);
StarlingRef.start();
}
TestStarling.as:
Код AS3:
package program
{
import starling.display.Sprite;
import starling.display.Image;
import starling.textures.Texture;
import starling.text.TextField;
import starling.core.Starling;
public class TestStarling extends Sprite
{
public function TestStarling()
{
var texture:Texture = Texture.fromBitmap(Assets.getBitmap("Player"));
var img:Image = new Image(texture);
img.x = 150;
img.y = 150;
addChild(img);
var textField:TextField = new TextField(400, 300, "Welcome to Starling!");
addChild(textField);
trace("Created!");
}
}
}
Сам объект создается, но ничего не выводит. В лог идет следующее:
Код AS3:
[Starling] Initialization complete.
[Starling] Display Driver: DirectX9 (Baseline Constrained)
Created!
Встраиваю в Main.mxml вот таким образом:
Код AS3:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:pr="program.*" creationComplete="initApplication();">
<fx:Script>
<![CDATA[
import program.GameEvent;
import program.Constants;
private function initApplication():void
{
myProgram.addEventListener(Constants.EVENT_SCORE_CHANGED, onScoreChanged, false, 0, true);
myProgram.addEventListener(Constants.EVENT_GAME_OVER, onGameOver, false, 0, true);
}
private function onScoreChanged(_evnt:GameEvent):void
{
pointsTextFld.text = "Очков: " + _evnt.params["score"];
gameOverPointsText.text = "Ваш счет: " + _evnt.params["score"];
}
private function onGameOver(_evnt:GameEvent):void
{
gameOverText.visible = true;
}
private function onRestartBtnClick():void
{
gameOverText.visible = false;
Program.restart();
}
]]>
</fx:Script>
<pr:Program id="myProgram"></pr:Program>
<s:Label id="pointsTextFld" x="10" y="10" text="Очков: 0"/>
<s:BorderContainer id="gameOverText" visible="false" alpha="0.8" width="100%" height="100%" >
<s:Label text="Game over!" horizontalCenter="0" verticalCenter="-20"/>
<s:Label id="gameOverPointsText" text="Ваш счет: 0" horizontalCenter="0" verticalCenter="0"/>
<s:Button id="restartBtn" label="Начать заного" horizontalCenter="0" verticalCenter="40" click="onRestartBtnClick();" />
</s:BorderContainer>
</s:Application>
В чем может быть проблема?
Добавлено через 5 часов 15 минут
Проблема решена. Нужно было к <s:Application> добавить backgroundAlpha="0".
|