FWIW, IMO, it is a bit easier for data to be untyped in Royale than it was in Flex.
Flex was designed to support strongly-typed data coming from Flex Data Services, SOAP, and RemoteObject/AMF before REST-ful JSON services became popular. Also the Flash runtime verifier was way more likely to catch implicit casts like in parameters to functions, so things were more likely to throw exceptions in the data layer in Flex. I'm pretty sure I proved Royale can have a Reviver so that JSON.parse converts to typed objects. But other code that is being migrated from Flex to Royale that expected a typed object may no longer get a typed object after the data layer is ported. HTH, -Alex On 4/21/21, 9:34 AM, "Josh Tynjala" <joshtynj...@bowlerhat.dev> wrote: I guess Features and Concepts -> ActionScript 3 (AS3) would be the correct category in the docs. Ideally, this category will eventually be filled with many pages that teach a user how to use each of the language features of AS3. So there should probably be a page that teaches how to cast an object to a different type. At the bare minimum, the page about casting should also demonstrate the syntax and explain how each type of cast behaves: ActionScript has two different types of casts. Function casts: var obj:MyType = MyType(anotherObj); As casts: var obj:MyType = anotherObj as MyType; Function casts throw an exception when the cast fails. As casts return null when the cast fails. -- Josh Tynjala Bowler Hat LLC <https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbowlerhat.dev%2F&data=04%7C01%7Caharui%40adobe.com%7C4e8839a0c6594ce9db4508d904e351a0%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637546196639755635%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=L%2FLItyIefqFVoK%2FD8Naskku%2FovrZszTexkKdznHvL2U%3D&reserved=0> On Wed, Apr 21, 2021 at 9:16 AM Andrew Wetmore <cottag...@gmail.com> wrote: > Where in the docs should I capture this wisdom? > > On Wed., Apr. 21, 2021, 12:57 p.m. Josh Tynjala, < > joshtynj...@bowlerhat.dev> > wrote: > > > Just like how things worked in Flash, you can't just cast a random `var > > obj:Object = {}` to a class. It needs to be a real instance of that > class. > > The basic rule to keep in mind is this: You can use `as CustomVO` with > > something that was created with `new CustomVO()`. For any other type, an > as > > cast returns null. > > > > -- > > Josh Tynjala > > Bowler Hat LLC <https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbowlerhat.dev%2F&data=04%7C01%7Caharui%40adobe.com%7C4e8839a0c6594ce9db4508d904e351a0%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637546196639755635%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=L%2FLItyIefqFVoK%2FD8Naskku%2FovrZszTexkKdznHvL2U%3D&reserved=0> > > > > > > On Tue, Apr 20, 2021 at 4:24 PM gbarbosa <gbarbosa...@gmail.com> wrote: > > > > > Hi Royale, > > > > > > I was recently trying to cast an Object > > > > > > obj as CustomVO > > > > > > but it would always turn to null. The as operator kept thinking > CustomVO > > > was > > > type Function() why would this be? > > > > > > The workaround ending up being to set the prototype. > > > > > > Object.setPrototypeOf(obj, CustomVO.prototype); > > > > > > and this successfully casted correctly. Is there a better way to do > this? > > > Most likely something something to do with the structure of CustomVO? > the > > > classes it extends? > > > > > > Thanks for your time. > > > > > > -Gabriel Barbosa > > > > > > > > > > > > -- > > > Sent from: https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fapache-royale-development.20373.n8.nabble.com%2F&data=04%7C01%7Caharui%40adobe.com%7C4e8839a0c6594ce9db4508d904e351a0%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637546196639755635%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=f0yhKv89bLx9OCfDw1Ten%2B6NzeibvhOiJPorbThvo74%3D&reserved=0 > > > > > >