Jump to content
Search Community

Error #1034,TweenLite error in init()

cljclj520 test
Moderator Tag

Recommended Posts

It is difficult to troubleshoot without having a simple FLA to publish on our end, but I would highly recommend updating to version 12 as soon as you can. 

 

Make sure you're not trying to tween a null target. 

 

If you still need help, please post a reduced test case FLA with only the code necessary to reproduce the problem. You can post it here by zipping it first, then click the "More reply options" button below and you'll see options for attaching files. 

Link to comment
Share on other sites

It is difficult to troubleshoot without having a simple FLA to publish on our end, but I would highly recommend updating to version 12 as soon as you can. 

 

Make sure you're not trying to tween a null target. 

 

If you still need help, please post a reduced test case FLA with only the code necessary to reproduce the problem. You can post it here by zipping it first, then click the "More reply options" button below and you'll see options for attaching files. 

 Thanks.

Link to comment
Share on other sites


package

{

import com.greensock.TweenLite;

 

import createRole.*;

 

import flash.display.Bitmap;

import flash.display.DisplayObject;

import flash.display.MovieClip;

import flash.display.Sprite;

import flash.events.Event;

import flash.events.IOErrorEvent;

import flash.events.MouseEvent;

import flash.events.TextEvent;

import flash.filters.GlowFilter;

import flash.net.URLLoader;

import flash.net.URLLoaderDataFormat;

import flash.net.URLRequest;

import flash.text.TextField;

import flash.text.TextFieldType;

import flash.text.TextFormat;

import flash.text.TextFormatAlign;

import flash.utils.ByteArray;

 

/**

* 角色创建视图类

* @param data

*

*/

public class RoleCreateView extends Sprite

{

private var _data:Object;

private var _nickLoader:URLLoader;

private var _titleBg:Bitmap;

private var _logo:Bitmap;

private var _bg:Bitmap;

private var _btns:Array;

private var _currentBtn:RoleSelectBtn;

private var _nick:String;

private var _filterUtils:WordFilter;

private var _isDispose:Boolean;

private var _xingArr:Array;

private var _ming1Arr:Array;

private var _ming2Arr:Array;

private var _inviteImg:Bitmap;

private var _nameTfbg:Bitmap;

private var _nameField:TextField;

private var _nameTip:TextField;

private var _suiji:Sprite;

private var _createBtn:MovieClip;

public static const DEFAULT_FONT:String = "宋体,SimSun";

 

/**

* 是否是随机名称

*/

private var _isRndName:Boolean;

 

/**

* 随机概率,对应武圣、飞羽、天师的随机概率

*/

private static const RND_PERCENTS:Array = [2, 2, 1, 1, 2, 2];

 

/**

* 构造方法

* @param data

*

*/

public function RoleCreateView(data:Object)

{

_data = data;

 

// 初始化界面,界面元素来源于独立的角色创建swc

initView();

 

// 添加事件监听

initEvent();

}

 

/**

* 外部启动接口

* @param createRole

* @param socketBack

*

*/

public function initFunc(createRole:Function = null, socketBack:Function = null):void

{

_data["createRole"] = createRole;

_data["callback"] = socketBack;

}

 

/**

* 外部设置错误提示

*

*/

public function setErrorText(text:String) : void

{

if (_nameTip != null)

{

_nameTip.htmlText = text;

}

}

 

override public function get width() : Number

{

return _bg ? _bg.width : 0;

}

 

override public function get height() : Number

{

return _createBtn ? _createBtn.y + _createBtn.height + 80: 0;

}

 

/**

* 初始化界面

*

*/

private function initView():void

{

// 加载文字过滤器

_filterUtils = new WordFilter();

_filterUtils.setup(_data["filterWord"] as Array);

 

// 加载随机姓名源文件

_nickLoader = new URLLoader();

_nickLoader.dataFormat = URLLoaderDataFormat.BINARY;

_nickLoader.addEventListener(Event.COMPLETE,nickLoadComplete);

_nickLoader.addEventListener(IOErrorEvent.IO_ERROR,nickIoerrorHandler);

var isDebug:Boolean = _data["isDebug"];

var curVersion:Number = !isDebug ? ((_data["versionData"].update)[0]..version[0].@value) : Math.random();

_nickLoader.load(new URLRequest(_data["site"] + "client/name.swf?" + curVersion));

 

// 添加背景

_bg = new Bitmap(new createBg());

_bg.y = 17;

addChild(_bg);

 

// 添加标题背景

_titleBg = new Bitmap(new titleBg());

_titleBg.x = (_bg.width - _titleBg.width) / 2;

_titleBg.y = _bg.y - 70;

addChild(_titleBg);

 

// 添加logo

_logo = new Bitmap(new logo());

_logo.x = (_bg.width - _logo.width) / 2;

_logo.y = _titleBg.y + (_titleBg.height - _logo.height) / 2;

addChild(_logo);

 

// 生成角色按钮,并监听鼠标事件

_btns = [];

var characterBtn1:RoleSelectBtn = new RoleSelectBtn(new Bitmap(new character1()), 0, 1);

characterBtn1.rawX = 61;

characterBtn1.rawY = 200;

addChild(characterBtn1);

_btns.push(characterBtn1);

var characterBtn2:RoleSelectBtn = new RoleSelectBtn(new Bitmap(new character2()), 0, 2);

characterBtn2.rawX = 123;

characterBtn2.rawY = 126;

_btns.push(characterBtn2);

var career1Img:Bitmap = new Bitmap(new career1());

career1Img.x = 153;

career1Img.y = 220;

addChild(career1Img);

var characterBtn3:RoleSelectBtn = new RoleSelectBtn(new Bitmap(new character3()), 1, 1);

characterBtn3.rawX = 240;

characterBtn3.rawY = 42;

_btns.push(characterBtn3);

var characterBtn4:RoleSelectBtn = new RoleSelectBtn(new Bitmap(new character4()), 1, 2);

characterBtn4.rawX = 338;

characterBtn4.rawY = 43;

_btns.push(characterBtn4);

var career2Img:Bitmap = new Bitmap(new career2());

career2Img.x = 293;

career2Img.y = 127;

addChild(career2Img);

var characterBtn5:RoleSelectBtn = new RoleSelectBtn(new Bitmap(new character5()), 2, 1);

characterBtn5.rawX = 453;

characterBtn5.rawY = 125;

_btns.push(characterBtn5);

var characterBtn6:RoleSelectBtn = new RoleSelectBtn(new Bitmap(new character6()), 2, 2);

characterBtn6.rawX = 513;

characterBtn6.rawY = 202;

_btns.push(characterBtn6);

var career3Img:Bitmap = new Bitmap(new career3());

career3Img.x = 420;

career3Img.y = 220;

addChild(career3Img);

for each (var btn:RoleSelectBtn in _btns)

{

btn.addEventListener(MouseEvent.CLICK, btnClickHandler);

btn.addEventListener(MouseEvent.ROLL_OVER, btnRollOverHandler);

btn.addEventListener(MouseEvent.ROLL_OUT, btnRollOutHandler);

addChild(btn);

}

 

//先随机选中一个,在名字加载完之后再显示随机名字

var totalPercent:int = 0;

var i:int = 0;

for (i = 0; i < RND_PERCENTS.length; i++)

{

totalPercent += RND_PERCENTS;

}

var rndPercent:int = int(Math.random() * totalPercent);

totalPercent = 0;

for (i = 0; i < RND_PERCENTS.length; i++)

{

totalPercent += RND_PERCENTS;

if (rndPercent < totalPercent)

break;

}

i = Math.min(i, _btns.length);

var suijiBtn:RoleSelectBtn = _btns;

setSelected(suijiBtn);

 

// 创角提示

_inviteImg = new Bitmap(new inviteTip());

_inviteImg.x = _bg.x + (_bg.width - _inviteImg.width) / 2;

_inviteImg.y = 315;

addChild(_inviteImg);

 

// 加入姓名输入框背景

_nameTfbg = new Bitmap(new nameBg());

_nameTfbg.x = _bg.x + (_bg.width - _nameTfbg.width) / 2;

_nameTfbg.y = 360;

addChild(_nameTfbg);

 

// 加入随机按钮

_suiji = new Sprite();

_suiji.buttonMode = true;

_suiji.addChild(new Bitmap(new randomBtn()));

_suiji.x = _nameTfbg.x + _nameTfbg.width - _suiji.width - 6;

_suiji.y = _nameTfbg.y + (_nameTfbg.height - _suiji.height) / 2;

 

// 加入姓名输入框

_nameField = new TextField();

_nameField.type = TextFieldType.INPUT;

_nameField.x = _nameTfbg.x + 10;

_nameField.y = _nameTfbg.y + (_nameTfbg.height - 20) / 2;;

_nameField.width = _suiji.x - _nameField.x;

_nameField.height = 20;

var format:TextFormat = new TextFormat(DEFAULT_FONT,14,0xfff0be,null,null,null,null,null,TextFormatAlign.LEFT);

_nameField.setTextFormat(format);

_nameField.defaultTextFormat = format;

addChild(_nameField);

// 设置姓名文本的选中颜色

new TextFieldColor(_nameField, format.color as uint, 0xffffff, 0x000000);

 

// 加入输入错误提示框

_nameTip = new TextField();

_nameTip.selectable = false;

_nameTip.defaultTextFormat = new TextFormat(DEFAULT_FONT,12,0xff0000,null,null,null,null,null,TextFormatAlign.CENTER,null,null,null,3);

_nameTip.filters = [new GlowFilter(0x281B1A,1,2,2,4.5)];

_nameTip.width = width;

_nameTip.height = 20;

_nameTip.y = _nameField.y - _nameField.height - 5;

addChild(_nameTip);

 

// 加入开始游戏按钮

_createBtn = new createBtn() as MovieClip;

_createBtn.buttonMode = true;

_createBtn.x = _bg.x + (_bg.width - _createBtn.width) / 2;

_createBtn.y = 435;

addChild(_createBtn);

_createBtn.gotoAndStop(1);

}

 

/**

* 监听事件

*

*/

private function initEvent():void

{

_createBtn.addEventListener(MouseEvent.CLICK,createClickHandler);

_createBtn.addEventListener(MouseEvent.MOUSE_OVER,btnMouseHandler);

_createBtn.addEventListener(MouseEvent.MOUSE_OUT,btnMouseHandler);

_createBtn.addEventListener(MouseEvent.MOUSE_DOWN,btnMouseHandler);

_createBtn.addEventListener(MouseEvent.MOUSE_UP,btnMouseHandler);

_suiji.addEventListener(MouseEvent.CLICK,suijiClickHandler);

_nameField.addEventListener(TextEvent.TEXT_INPUT, textInputHandler);

_nameField.addEventListener(Event.CHANGE, textChangeHandler);

_nameField.addEventListener(MouseEvent.CLICK, nameClickHandler);

addEventListener(Event.ADDED_TO_STAGE, addToStageHandler);

}

 

/**

* 卸载事件

*

*/

private function removeEvent():void

{

removeEventListener(Event.ADDED_TO_STAGE, addToStageHandler);

_createBtn.removeEventListener(MouseEvent.CLICK,createClickHandler);

_createBtn.removeEventListener(MouseEvent.MOUSE_OVER,btnMouseHandler);

_createBtn.removeEventListener(MouseEvent.MOUSE_OUT,btnMouseHandler);

_createBtn.removeEventListener(MouseEvent.MOUSE_DOWN,btnMouseHandler);

_createBtn.removeEventListener(MouseEvent.MOUSE_UP,btnMouseHandler);

_suiji.removeEventListener(MouseEvent.CLICK,suijiClickHandler);

_nameField.removeEventListener(TextEvent.TEXT_INPUT, textInputHandler);

_nameField.removeEventListener(Event.CHANGE, textChangeHandler);

_nameField.removeEventListener(MouseEvent.CLICK, nameClickHandler);

}

 

/**

* 角色创建界面添加到舞台,需要让界面居中

* 因为舞台大小可能小于角色创建界面大小

*/

private function addToStageHandler(event:Event) : void

{

this.x = (stage.stageWidth - width) / 2;

this.y = (stage.stageHeight - height) / 2;

}

 

/**

* 检测nick的合法性,不合法则输出提示信息

* @return 返回昵称是否合法

*

*/

private function checkNickName() : Boolean

{

var n:int = _filterUtils.checkLen(_nameField.text);

// 检测长度是否合法

if (n < 2)

{

_nameTip.htmlText = "名称输入错误";

return false;

}

 

// 限制输入长度

if (n > 12)

{

_nameField.maxChars = _nameField.text.length;

// 长度大于12个字符,截断

_nameField.text = _filterUtils.getStr(_nameField.text, 12);

}

else

_nameField.maxChars = 0;

 

// 检测字符合法性

if (!_filterUtils.checkNameAllow(_nameField.text))

{

_nameTip.htmlText = "名称不合法";

return false;

}

 

// 名称合法,返回真

return true;

}

 

/**

* 文本改变事件

* 由于最后一个字符时中文已经输入成功,可能导致最后一个中文显示出来

*

*/

private function textChangeHandler(event:Event) : void

{

// 名称合法,什么都不显示

if (checkNickName())

_nameTip.htmlText = "";

}

 

/**

* 文本输入事件,用来标识是输入名称还是随机名称

*

*/

private function textInputHandler(event:TextEvent) : void

{

// 如果敲入的是回车,则创建角色

if (event.text.charCodeAt(0) == 13)

{

createClickHandler(null);

return;

}

 

// 输入了文本,表示不再是随机名称

_isRndName = false;

}

 

/**

* 文本被点击处理

* 被点击时,如果文本之前没有被选中,则设置文本为选中状态

* 这样可以直接输入文本

*

*/

private function nameClickHandler(event:MouseEvent) : void

{

// 如果是随机名字,且点击了最后的项,则选中全部

if (_isRndName && _nameField.getLineIndexOfChar(_nameField.selectionBeginIndex) == -1)

_nameField.setSelection(0, _nameField.text.length);

}

 

/**

* 完成姓名文件加载后处理

* @param evt

*

*/

private function nickLoadComplete(evt:Event):void

{

_nickLoader.removeEventListener(Event.COMPLETE,nickLoadComplete);

_nickLoader.removeEventListener(IOErrorEvent.IO_ERROR,nickIoerrorHandler);

 

// if(_isDispose) return;

 

var nickBytes:ByteArray = _nickLoader.data as ByteArray;

nickBytes.inflate();

// nickBytes.position = 0;

 

var nickString:String = nickBytes.readUTFBytes(nickBytes.length);

var arr:Array = nickString.split("|");

_xingArr = arr[0].split(",");

_ming1Arr = arr[1].split(",");

_ming2Arr = arr[2].split(",");

 

// 显示随机按钮

addChild(_suiji);

 

//随机姓名

if(_nameField.text == "")

{

setRndNick();

}

}

 

 

/**

* 加载错误处理

* @param evt

*

*/

private function nickIoerrorHandler(evt:IOErrorEvent):void

{

_nickLoader.removeEventListener(Event.COMPLETE,nickLoadComplete);

_nickLoader.removeEventListener(IOErrorEvent.IO_ERROR,nickIoerrorHandler);

}

 

/**

* 随机生成姓名

*

*/

private function setRndNick():void

{

if(_currentBtn == null)

{

return;

}

 

var nick:String = _xingArr[int(Math.random() * _xingArr.length)];

 

if (_currentBtn.*** % 2 == 1)

{

nick += _ming1Arr[int(Math.random() * _ming1Arr.length)];

}

else

{

nick += _ming2Arr[int(Math.random() * _ming2Arr.length)];

}

 

// 如果随到的名字包含过滤词,则重新随机

if (!_filterUtils.checkNameAllow(nick))

setRndNick();

else

{

_nameField.text = nick;

_isRndName = true;

_nameField.setSelection(0, -1);

}

}

 

/**

* 点击角色按钮事件处理

* @param evt

*

*/

private function btnClickHandler(evt:MouseEvent):void

{

setSelected(evt.currentTarget as RoleSelectBtn);

}

 

/**

* 移入角色按钮

*

*/

private function btnRollOverHandler(event:MouseEvent) : void

{

var btn:RoleSelectBtn = event.target as RoleSelectBtn;;

TweenLite.to(btn, 0.3, {scaleX:1.1, scaleY:1.1, x:btn.rawX-btn.width*0.05, y:btn.y-btn.height*0.05});

var a:Bitmap = null;

var b:int = 1;

a = new Bitmap();

}

 

/**

* 移出角色按钮

*

*/

private function btnRollOutHandler(event:MouseEvent) : void

{

var btn:RoleSelectBtn = event.target as RoleSelectBtn;

TweenLite.to(btn, 0.3, {scaleX:1.0, scaleY:1.0, x:btn.rawX, y:btn.rawY});

}

 

/**

* 选择按钮后处理

* @param btn

*

*/

private function setSelected(btn:RoleSelectBtn):void

{

// 选中角色相同,不处理

if (_currentBtn == btn)

return;

 

// 如果没有角色选中,不处理

if (btn == null)

return;

 

// 取消上次选中的按钮状态

if(_currentBtn)

{

_currentBtn.selected = false;

}

 

// 设置当前选中为新的选中

_currentBtn = btn;

_currentBtn.selected = true;

 

// 如果随机的名称,则在切换时需要重新随机名称

if (_isRndName)

setRndNick();

}

 

/**

* 点击进入游戏

* @param evt

*

*/

private function createClickHandler(evt:MouseEvent):void

{

// 如果检查合法,则设置数据信息

if (checkNickName())

{

_nick = _nameField.text;

_data["createRole"](_currentBtn.career + 1, _currentBtn.***, _nick, socketBack);

}

}

 

/**

*鼠标在开始按钮上的事件

* @param e

*

*/

private function btnMouseHandler(e:MouseEvent):void

{

switch (e.type)

{

case MouseEvent.MOUSE_OVER:

_createBtn.gotoAndStop(2);

break;

case MouseEvent.MOUSE_OUT:

_createBtn.gotoAndStop(1);

break;

case MouseEvent.MOUSE_DOWN:

_createBtn.gotoAndStop(3);

break;

case MouseEvent.MOUSE_UP:

_createBtn.gotoAndStop(1);

break;

}

}

 

/**

* 点击随机按钮处理

* @param evt

*

*/

private function suijiClickHandler(evt:MouseEvent):void

{

_nameField.text = "";

setRndNick();

}

 

/**

* 回调方法:后台返回结果

* @param data

*

*/

private function socketBack(data:ByteArray):void

{

//如果创建成功

if(data.readBoolean())

{

data.readUTF();

 

var t:Number = data.readUnsignedInt();

t = (t * 256) * 256 * 256 * 256 + data.readUnsignedInt();

_data["callback"](_nick,t); //回调姓名和id

 

dispose();

}

else

{

var tt:String = data.readUTF();

if(tt == "失败")

{

_nameTip.htmlText ="名称已存在";

}

else

{

_nameTip.htmlText = tt;

}

}

}

 

/**

* 释放所有资源

*

*/

public function dispose():void

{

removeEvent();

TweenLite.killTweensOf(this);

for each(var btn:RoleSelectBtn in _btns)

{

btn.removeEventListener(MouseEvent.CLICK,btnClickHandler);

btn.removeEventListener(MouseEvent.ROLL_OVER, btnRollOverHandler);

btn.removeEventListener(MouseEvent.ROLL_OUT, btnRollOutHandler);

btn.dispose();

btn = null;

}

_titleBg = null;;

_logo = null;

_bg = null;

_btns = null;

_currentBtn = null;

_createBtn = null;

_data = null;

_nickLoader = null;

_filterUtils = null;

_suiji = null;

_xingArr = null;

_ming1Arr = null;

_ming2Arr = null;

_nameField = null;

_nameTfbg = null;

_nameTip = null;

 

if(parent) parent.removeChild(this);

while (numChildren)

{

var child:DisplayObject = removeChildAt(0);

if (child is Bitmap)

{

if ((child as Bitmap).bitmapData != null)

(child as Bitmap).bitmapData.dispose();

(child as Bitmap).bitmapData = null;

}

}

_isDispose = true;

}

}

}

 

Link to comment
Share on other sites

Please don't just paste all the code from one class here - we need a reduced test case with an FLA (and any supporting files) that can be published directly on our end.

 

It looks like you have nested functions which are generally frowned upon in ActionScript. I'm not sure if that's the cause of your problem (probably not). 

Link to comment
Share on other sites

Please don't just paste all the code from one class here - we need a reduced test case with an FLA (and any supporting files) that can be published directly on our end.

 

It looks like you have nested functions which are generally frowned upon in ActionScript. I'm not sure if that's the cause of your problem (probably not). 

 

This forum does not allow me to upload a zip or rar file

How can I just provide  a fla that can be published directly even when it must include greensock.swc.And also I have some classes that must be included.

Link to comment
Share on other sites

You shouldn't have any problems uploading a zip.

Did you hit the "more reply options" button and then select "choose files"?

 

If the file is too big or you still have problems, there are plenty of file-sharing services available

 

http://ge.tt is completely free, no sign-up, no accounts, no ads.

 

Also, I took a quick glance at your code and it seems you are only creating tweens in 2 places:

private function btnRollOverHandler(event:MouseEvent) : void{
var btn:RoleSelectBtn = event.target as RoleSelectBtn;;
TweenLite.to(btn, 0.3, {scaleX:1.1, scaleY:1.1, x:btn.rawX-btn.width*0.05, y:btn.y-btn.height*0.05});
var a:Bitmap = null;
var b:int = 1;
a = new Bitmap();
}


/**
* 移出角色按钮
* 
*/ 
private function btnRollOutHandler(event:MouseEvent) : void
{
var btn:RoleSelectBtn = event.target as RoleSelectBtn;
TweenLite.to(btn, 0.3, {scaleX:1.0, scaleY:1.0, x:btn.rawX, y:btn.rawY});
}

I'd guess that 80% of the code you pasted isn't at all related to the problem.

 

Please create a simple set of  files that only includes enough code and assets to reproduce the problem, probably just a simple demo that creates your buttons and adds the proper eventListeners. 

Link to comment
Share on other sites

You shouldn't have any problems uploading a zip.

Did you hit the "more reply options" button and then select "choose files"?

 

If the file is too big or you still have problems, there are plenty of file-sharing services available

 

http://ge.tt is completely free, no sign-up, no accounts, no ads.

 

Also, I took a quick glance at your code and it seems you are only creating tweens in 2 places:

private function btnRollOverHandler(event:MouseEvent) : void{
var btn:RoleSelectBtn = event.target as RoleSelectBtn;;
TweenLite.to(btn, 0.3, {scaleX:1.1, scaleY:1.1, x:btn.rawX-btn.width*0.05, y:btn.y-btn.height*0.05});
var a:Bitmap = null;
var b:int = 1;
a = new Bitmap();
}


/**
* 移出角色按钮
* 
*/ 
private function btnRollOutHandler(event:MouseEvent) : void
{
var btn:RoleSelectBtn = event.target as RoleSelectBtn;
TweenLite.to(btn, 0.3, {scaleX:1.0, scaleY:1.0, x:btn.rawX, y:btn.rawY});
}

I'd guess that 80% of the code you pasted isn't at all related to the problem.

 

Please create a simple set of  files that only includes enough code and assets to reproduce the problem, probably just a simple demo that creates your buttons and adds the proper eventListeners. 

 

Thank you very much!

Link to comment
Share on other sites

I tried publishing the file and immediately got at least 3 errors that prevented it from even being published (missing class files, library symbol linkage problems, etc.). Plus there are over 1000 lines of code - if you'd like us to help you, we need a reduced test case as an FLA that can be published successfully (including any support files/classes). 

Link to comment
Share on other sites

I tried publishing the file and immediately got at least 3 errors that prevented it from even being published (missing class files, library symbol linkage problems, etc.). Plus there are over 1000 lines of code - if you'd like us to help you, we need a reduced test case as an FLA that can be published successfully (including any support files/classes). 

 

I'm sorry,but I can publish the fla I've uploaded.

The flash cs version is 5.5.

Can you display the errors when published?

Link to comment
Share on other sites

First, I get a message saying "You have used a feature that requires the Flex SDK" (Embed metadata), then I get these errors:

boundClass_createRole_boundSourceCl.as, Line 10, Column 66	1017: The definition of base class ByteArrayAsset was not found.

boundClass_createRole.as, Line 1, Column 1	5000: The class 'boundClass_createRole' must subclass 'flash.display.BitmapData' since it is linked to a library symbol of that type.


RoleCreateView.as, Line 1, Column 1	5000: The class 'RoleCreateView' must subclass 'flash.display.MovieClip' since it is linked to a library symbol of that type.

And even if it did publish, we still have over 1000 lines of code spread out among several files to sift through - not exactly a reduced test case that isolates things. Plus you're using a version that's close to 2 years old. Unfortunately, we just don't have time to provide free consulting services in the forums, as much as I'd like to help. If you can isolate things very clearly, we'll do our best to address any GreenSock-specific issues. Again, I'd highly recommend updating to a newer version, as we've made many enhancements and fixed various bugs along the way. 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...