少し前に、私は自分のライブラリを共有することを
考えました 。 そして最後に、すべてをトリムしてGitHubに配置しました。
RObject
誰もがフラッシュに
describeType関数があることを知っています。 その主な欠点は、作業の速度です。Androidのアプリケーションでは、この速度は明らかに十分ではなく、小さなアメニティを奪いたくないので、ドキュメント化されていないavmplus.describeTypeJSONに目を向け始めました。 RObjectが修正するのはこの欠点です。これにより、クラス、インターフェイス、およびオブジェクトを同等に操作できます。
var flags:int = R.VARIABLES | R.METADATA | R.TRAITS; var descriptor:Object = R.describe(test, flags);
Jsonmapper
ここではすべてが単純です-型付きJSONパーサー。
マッピング:
public class JsonVO { [Serialized(required="true")] public var id:String = null; [Serialized(required="false")] public var name:String = null; [Serialized] [ArrayElementType("converter.rest.vo.JsonVO")] public var properties:Array; [Serialized] [ArrayElementType("String")] public var vector:Vector.<String> = Vector.<String>(["test", "test"]); [Serialized] [ArrayElementType("converter.rest.vo.JsonVO")] public var nested:Array = []; [Serialized] [ArrayElementType("int")] public var aCollection:ArrayCollection = new ArrayCollection([1, 2, 3]); } var mapper:JsonMapper = new JsonMapper(); mapper.registerClass(JsonVO);
解析:
var result:JsonVO = new JsonDecoder(mapper).decode(message, JsonVO);
As3query
Airには便利な機能が組み込まれていますが、通常はそうなるので、もっと欲しいと思いました。 もちろん
Flex ORMがありましたが、タブレットでは彼は死にかけていました。さらに、私は
Promises / A +を使用したいと考えました。 自動スキーマ作成をサポートします。
マッピング:
[Table(name="test")] [Index(name="test_index_1", columns="unsigned,bool")] [Index(name="test_index_2", columns="str", unique="true")] public dynamic class TestEntity { [Column(primaryKey, nullable="false")] public var id:int; [Column(default="1")] public var unsigned:uint; [Column(unique="true")] public var date:Date; [Column] public var xml:XML; [Column] public var str:String; [Column(foreignKey="table(id)", options="deferred")] public var fk_table:String; } var entityManager:EntityMapper = new EntityMapper(); entityManager.registerEntity(TestEntity);
自動テーブル作成、セッション:
var connection:SQLConnection = new SQLConnection(); connection.open(file, SQLMode.CREATE); try { new CreateTables(connection, [TestEntity], mapper).call(); } finally { if(connection.connected) { connection.close(); } } var session:Session = new Session(mapper); session.open(file.nativePath, SQLMode.UPDATE).then(function ():void{ trace('ok') });
リクエスト、トランザクション、基準:
FlexXBモバイル
再設計された
FlexXB xmlパーサーは、私が知っている最高のパーサーですが、非常に遅いため、数倍高速化することができました。
例:
[Bindable] [XmlClass(alias="DynamicProperty")] public class DynamicProperty { [XmlAttribute(alias="value")] public var value:int; [XmlElement(alias="property")] public var property:Property; [XmlAttribute(alias="enabled")] public var enabled:Boolean; }
air-hid-usb
Adobe AirのHIDデバイスを操作するための古い拡張プロジェクトであるGitHubに切り替えました。
var manager:IHIDManager = HIDFactory.getHIDManager(); var deviceInfos:Array = manager.getDeviceList(0x8001, 0xA00F);
それだけです、ご清聴ありがとうございました。