1 điểm bởi GN⁺ 2026-03-05 | 1 bình luận | Chia sẻ qua WhatsApp
  • Công cụ biên soạn hoạt hình 2D thế hệ mới được phát triển bằng C#, Avalonia, SkiaSharp, tái hiện các chức năng của Flash theo cách hiện đại
  • Hoạt động trên Linux, Mac, PC, đồng thời cung cấp môi trường sản xuất hoàn chỉnh với timeline, vẽ vector, symbol, tweening, scripting
  • Hỗ trợ nhập tệp .fla/XFL, cho phép mở và chỉnh sửa các dự án Flash hiện có
  • Bao gồm các chức năng sản xuất tích hợp như hệ thống scripting dựa trên C#, trình chuyển đổi ActionScript, trình chỉnh sửa âm thanh tích hợp
  • Là một môi trường biên soạn mã nguồn mở, điểm cốt lõi là kế thừa di sản của Flash đồng thời cung cấp workflow hiện đại

Tổng quan dự án

  • Công cụ biên soạn hoạt hình 2D hoàn chỉnh với mục tiêu hình dung Flash sẽ trông như thế nào nếu được tạo mới vào năm 2026
    • Được xây dựng lại từ đầu bằng C#, Avalonia, SkiaSharp
    • Tương thích với Linux, Mac, Windows
  • Bao gồm đầy đủ các chức năng cốt lõi của Flash như timeline, công cụ vẽ, thư viện symbol, tweening, scripting
  • Có thể mở và chỉnh sửa các dự án Flash hiện có thông qua tính năng nhập tệp .fla/XFL
  • Có thể tái sử dụng cả mã script hiện có thông qua trình transpiler ActionScript → C#

Hệ thống cốt lõi

  • Cung cấp các chức năng tab đa tài liệu, tự động lưu, tuần tự hóa dự án, quản lý scene, thiết lập stage
    • Cấu trúc lưu tệp .anim dạng thư mục hoặc nén, dựa trên JSON + SkiaSharp
    • Có thể tùy chỉnh kích thước stage, màu nền, tốc độ khung hình, v.v.

Công cụ và engine vẽ

  • Engine vector dựa trên DCEL (danh sách cạnh liên kết kép) tái hiện chế độ vẽ hợp nhất của Flash
    • Hỗ trợ 5 chế độ paint gồm Paint Normal, Behind, Fills, Selection, Inside
  • Bao gồm 17 công cụ vẽ
    • Brush, Pencil, Line, Rectangle, Circle, Arc, Eraser, Transform, Paint Bucket, Eyedropper, Text, Camera, v.v.
    • Có thể điều khiển chi tiết với cảm ứng lực nhấn, làm mượt, biến đổi tự do, zoom/panning

Hệ thống đối tượng và symbol

  • Hỗ trợ nhiều loại đối tượng như Shape, Text, Rich Text, Bitmap, Symbol Instance
  • Triển khai đầy đủ cấu trúc symbol của Flash như Graphic, MovieClip, Button, RichText Symbol
    • Có thể chuyển đối tượng đã chọn thành symbol có thể tái sử dụng bằng chức năng Convert to Symbol
    • Quản lý tập trung toàn bộ tài sản trong Symbol Library

Timeline và hoạt hình

  • Cung cấp timeline nhiều layerhệ thống keyframe
    • Loại layer: Normal, Guide, Mask, Folder, Camera, Sound
  • Hỗ trợ Classic Tween, Motion Tween, Shape Tween
    • Có thể chỉnh sửa đường chuyển động dựa trên Bezier, hoạt hình camera, đồng bộ âm thanh
  • Hỗ trợ hàm easing (Linear, Quad, Cubic, Sine, Expo, Back, Bounce, Elastic) và đường cong tùy chỉnh

Tạo kiểu và hiệu ứng

  • Fill: màu đơn, gradient tuyến tính/xuyên tâm, pattern
  • Stroke: độ dày, màu sắc, kiểu đầu nối/cuối nét, giới hạn miter
  • Filter và hiệu ứng: Blur, Drop Shadow, Glow, Bevel, Adjust Color, v.v.
    • Có thể kết hợp nhiều filter theo kiểu chain

Chức năng chọn, căn chỉnh và biến đổi

  • Hỗ trợ chọn hình chữ nhật/tự do, biến đổi nhóm, uốn cong đường dẫn, snapping
  • Có thể căn khoảng cách và vị trí giữa các đối tượng bằng công cụ căn chỉnh và phân bố
  • Hỗ trợ tối đa 100 bước Undo/Redo, cùng gộp lệnh và thực thi hàng loạt

Nhập và xuất

  • Tải dự án Flash bằng nhập tệp XFL/.fla
  • Hỗ trợ cả xuất SWFxuất HTML5/Canvas
    • Bao gồm chuyển đổi Bezier, bake Tween, Shape compiler

Scripting và tự động hóa

  • Với engine scripting C# dựa trên Roslyn, có thể tự động hóa biên soạn ở mức tương đương hoặc cao hơn JSFL
    • Cung cấp API cho tài liệu, timeline, layer, vùng chọn, đồ họa, thư viện
  • Thực thi mã theo từng thời điểm phát bằng frame script
  • Tích hợp sẵn trình chuyển đổi ActionScript 3 → C# cùng AS3 parser/lexer
  • Hỗ trợ debug bằng engine phát script, API phát hiện đầu vào, bảng output

Âm thanh và rich text

  • Trình chỉnh sửa âm thanh tích hợp hỗ trợ hiển thị dạng sóng, cắt/dán, phát đồng bộ với timeline
    • Xử lý nhập/xuất âm thanh bằng thư viện NAudio
  • Engine văn bản cho phép điều khiển chi tiết như font, kích thước, màu sắc, căn chỉnh, khoảng cách ký tự, khoảng cách dòng
    • Có thể hoạt hình hóa văn bản ở dạng vector bằng render đường dẫn glyph

UI/UX

  • Hỗ trợ hệ thống panel dock kiểu VScửa sổ nổi
  • Cấu thành từ các panel như timeline, thuộc tính, thư viện, công cụ, bộ chọn màu
  • Cung cấp quản lý tài liệu theo tab, panel tự động ẩn, preset zoom, trình chỉnh sửa profile độ dày nét

Tiến độ dự án và hỗ trợ

  • Hiện đang được phát triển tích cực, với các tính năng mới liên tục được bổ sung
  • Có thể hỗ trợ phát triển thông qua trang tài trợ Patreon
  • Dự kiến sẽ tiếp tục đăng tải cập nhật dự án trên Newgrounds

1 bình luận

 
GN⁺ 2026-03-05
Ý kiến trên Hacker News
  • Trước đây tôi từng làm game Flash. Hồ sơ Newgrounds của tôi vẫn còn đó
    Điểm hay của Flash là môi trường để coder và artist cùng làm việc. Artist có thể làm animation bằng file FLA rồi gửi cho tôi, còn tôi chỉ cần chép nó vào dự án. Nếu cần thì tôi cũng có thể chỉnh vài frame để chuyển động tự nhiên hơn
    Dạo này tôi đang làm với Love2D, và quản lý phiên bản tốt hơn nhiều. Hồi xưa tôi quản lý file kiểu GameName-1.fla, GameName-2.fla. Về sau có thể tách ActionScript ra, nhưng FLA vẫn là một khối nhị phân
    Animation vector của Flash là thứ mà các công cụ dựa trên sprite ngày nay vẫn chưa theo kịp. Animation boss của Clock Legends mà tôi từng làm có hàng trăm frame, nhưng file FLA chỉ khoảng 23MB. Tôi rất hào hứng khi thấy kiểu dự án này sống lại

    • Có người nói cảm ơn vì đã gợi nhớ đến Clock Crew. Internet thời đó đúng là một không gian đầy niềm vui
  • Khi làm việc ở Adobe, tôi từng tạo một trình crawler Flash. Khoảng 2008~2010, chúng tôi bắt đầu crawl từ top 1 triệu website theo Alexa
    Chúng tôi dùng Firefox headless và một Flash player tùy biến để dump rồi phân tích dữ liệu runtime. Chúng tôi dựng một cụm máy ở trung tâm colocation tại Bucharest, và tôi thường phải bay sang đó vì các vấn đề như giới hạn trọng lượng hay nâng cấp RAM
    Chúng tôi dùng các công nghệ đời đầu như Nutch, Hadoop, HBase, rồi trực quan hóa kết quả bằng SQL DB và UI. Các thực tập sinh đã hoàn thiện hệ thống này và học được rất nhiều; giờ có người còn đang làm việc ở Thung lũng Silicon
    Công cụ này cũng phát hiện ra rất nhiều lỗ hổng bảo mật. Nếu Adobe vẫn còn giữ dữ liệu đó, có lẽ nên tặng nó cho Computer History Museum

    • Có người nói mình đã mê IT từ nhỏ nhờ đọc những câu chuyện như thế này. Nó giống những chuyến phiêu lưu từ thời trước kỷ nguyên AWS
    • Cũng có bình luận thấy rất thú vị và hỏi mục đích của dự án thời đó là gì
  • Flash đến giờ vẫn là nền tảng phát triển vui nhất mà tôi từng dùng
    Việc tự vẽ, rồi nối nó với code, lại không cần phải đếm lại frame thật sự quá tiện. Tôi vẫn nhớ thời ngồi trong phòng tự làm game bằng bản crack của Flash MX 2004 Pro (hoặc Flash 8)
    Construct và GameMaker cũng tốt, nhưng không vui bằng Flash. Nếu có một Flash mới thì tôi sẽ thật sự rất mừng

    • Có người nói một điều thường bị bỏ qua là Flash đã mở ra không gian sáng tạo cho các lập trình viên tuổi teen. Việc có thể làm game và animation chạy được trên cả Pentium II là điều rất đáng kinh ngạc
  • Thật bất ngờ khi có một công cụ mã nguồn mở có thể mở và chỉnh sửa trực tiếp file .fla / XFL. Nếu không chỉ phát lại mà còn sửa được, thì điều đó có ý nghĩa rất lớn về mặt tương thích ngược

    • Nhưng vì định dạng .fla chưa bao giờ được tài liệu hóa đầy đủ hay reverse engineer hoàn toàn, nên có người cho rằng đây là một nỗ lực khá táo bạo
    • Một người khác thì tò mò liệu trình transpiler ActionScript → C# có thực sự hoạt động tốt hay không
  • Có người nghi ngờ văn phong của bài viết không nhất quán, nên có vẻ như một phần được LLM tạo ra. Dấu câu và cách viết hoa viết thường khá thất thường, trong khi phần tóm tắt lại có ngữ pháp hoàn hảo
    Những cách diễn đạt như “Not just play them back — edit them” đặc biệt tạo cảm giác nhân tạo. Dù vậy, họ vẫn chúc dự án thành công

    • Cũng có ý kiến cho rằng các icon trong ảnh trông như được tạo bởi AI. Sẽ tốt hơn nếu tác giả công khai mình đã dùng LLM đến mức nào, nhưng cộng đồng Newgrounds có thể sẽ không thích điều đó
    • Có người chia sẻ link LLM_PROSE_TELLS.md và bảo nên tham khảo các dấu hiệu nhận biết văn bản do LLM viết
  • Trong 15 năm qua, tôi thường nghĩ rằng “thế giới cần lại một thứ như Flash”. Flash là công cụ đã giúp cả một thế hệ học nghệ thuật, game, âm nhạc và animation
    Với thế hệ hiện nay, có vẻ Minecraft và Roblox đang đảm nhận vai trò đó

    • Flash là một trong những phần mềm tôi yêu thích nhất. Nó cũng là chương trình tôi nhớ nhất sau khi chuyển sang Linux
      Bây giờ vẫn có thể chạy Flash MX 2004 bằng Wine, nhưng tôi rất muốn có một phiên bản mở được cập nhật định kỳ
      ToonBoom là một công cụ animation tuyệt vời, Construct 2 là một game engine tốt, nhưng không có công cụ lai nào kết hợp tự nhiên giữa animation và code như Flash
      Trong Flash, bạn có thể làm truyện tranh mà không cần biết ActionScript, rồi dần dần thêm code để mở rộng thành game. Đó thật sự là một cấu trúc rất tuyệt
  • Tôi nghĩ việc gọi dự án là mã nguồn mở nhưng lại mở Patreon trước là một khởi đầu không tốt. Đặc biệt khi vẫn chưa có ví dụ đang chạy hay video, việc nhận ủng hộ trả phí làm giảm lòng tin

    • Có một phản hồi ngắn chỉ là: “Hmm”
  • Năm 2012, có người đã tạo một thư viện JavaScript tên IvanK.js để tái hiện Flash API trên web. Nó cần WebGL, nhưng thời đó hỗ trợ còn kém
    Dù vậy, vẫn có thể port một số game Flash lên web khá nhanh
    Link demo

  • Haxe được nhắc đến như hậu duệ của Flash, nhưng thực ra nó gần với một bản thay thế ActionScript hơn
    Sức hút thật sự của Flash nằm ở sự kết hợp giữa công cụ đồ họa và scripting. Chỉ giống nhau ở ngôn ngữ thì không thể mang lại cùng một trải nghiệm

  • Có người nghĩ sẽ thật tốt nếu Adobe mã nguồn mở Flash. Nếu vậy, họ có thể vẫn tiếp tục dẫn đầu thị trường công cụ phát triển trả phí

    • Nhưng theo một người biết chuyện nội bộ, khoảng 2008~2012 thì codebase của Flash Player đã quá đồ sộ và vướng giấy phép bên ngoài nên không thể công khai
    • Một người khác giải thích rằng Flash thực ra vẫn tiếp nối dưới dạng Adobe Animate, và các khách hàng như Disney vẫn đang sử dụng nên việc mã nguồn mở là rất khó