Kullanıcı arayüzü (UI), bir uygulamanın “ne yaptığını” değil, kullanıcının bunu nasıl deneyimlediğini belirler. Macromedia/Adobe Flash (günümüzde Adobe Animate) ekosistemi; vektör tabanlı çizim, timeline, MovieClip mimarisi, ActionScript 3 ile olay odaklı programlama, component skinning, 9-slice ölçekleme, maskeleme, ses/müzik, XML/JSON veri ayrıştırma, AIR/HTML5 yayın gibi araçları tek stüdyoda sunarak UI tasarımını hızlı ve tekrarlanabilir bir zanaate dönüştürdü.
Bu kapsamlı rehberde, Flash uygulamaları için UI tasarımını uçtan uca sistematize ediyoruz: bilgi mimarisi ve akış diyagramı, komponent kütüphanesi ve durum yönetimi, CTA/başlık/ikonografi/renk-kontrast ergonomisi, mikro-animasyon ve easing psikolojisi, klavye erişilebilirliği ve Reduce Motion, form/validasyon, dinamik menü ve çok düzeyli navigasyon, temalandırma ve yerelleştirme, performans–bellek hijyeni, test/QA, analitik ve ölçüm, modern HTML5/Canvas/GSAP köprüsü. Bölümlerin her biri uygulanabilir kalıplar, kontrol listeleri, mini AS3 örnekleri ve vaka notlarıyla derinleşir.
Gelişme
1) Bilgi Mimarisi (IA): Akış Önce, Görsel Sonra
UI, hedef → görev → eylem zincirine dayanır. Başlangıçta sit haritası ve akış diyagramı çıkarmadan piksele dokunmayın.
-
IA katmanları: Uygulama → Bölüm → Ekran → Panel/Widget → Kontrol.
-
Kural: Her ekranda tek bir birincil eylem (Primary Action) olmalı; ikinciller (Secondary) görsel hiyerarşide geri planda.
-
Vaka: Bir raporlama uygulamasında filtre–tablo–grafik üçlüsünü solda dar kontrol, sağda geniş çıktı formülüyle ayırmak, karar süresini kısalttı.
2) Layout Sistemi: Grid, Negatif Alan ve Okunurluk
-
Grid: 8-px ritim güvenli limandır; kart/sekme/panel kenar boşluklarını bu ritme oturtun.
-
Negatif alan: CTA etrafında 16–24 px “hava”; mikro öğeleri kalabalıklaştırmayın.
-
Tipografi: Başlık 24–32 pt, gövde 16–20 pt; Latin-Ext (ı, İ, ğ, ş, ç, ö, ü) gömülü font.
-
Kontrast: Metin/zemin ≥ 4.5:1. Projeksiyon ve tablet için “bir boy büyük” kuralı.
3) Komponent Mimarisinde 5 İlke
-
Tek sorumluluk:
Button
,Checkbox
,Dropdown
,Tabs
,Modal
,Toast
,Stepper
… her biri tek iş. -
Durum seti:
default
,hover/focus
,pressed/active
,disabled
,loading
. -
Özelleştirme: Skin (renk/kenar/ikon), 9-slice ölçekleme, içerik boşluğu.
-
Erişilebilirlik: Klavye odak, rol/isim, hata/başarı durumu.
-
Olaylar:
change
,submit
,select
,error
,focus
,blur
—adlandırma tutarlı.
4) 9-Slice Ölçekleme ve Vektör Hijyeni
Piksel mükemmelliği, doğru ölçeklenen bileşenlerle gelir.
-
9-slice kullanarak buton/panel çerçevelerini bozulmadan büyütün.
-
Stroke hizası: 1–1.5 px altına düşmeyin; retina olmayan ekranlarda çizgi “kaybolur”.
-
cacheAsBitmap: Sık değişmeyecek vektörlerde performansı artırır.
5) Renk, Hiyerarşi ve CTA Ekonomisi
-
Palet: 1 ana, 1 vurgu, 2 nötr. Vurgu yalnız CTA ve önemli badge’lerde.
-
Durum renkleri: Başarı (yeşil), uyarı (sarı), hata (kırmızı) + ikon eşlik (renksiz okuma için).
-
CTA: Dolu stil (primary), ikincil bağlantı/link stili. Aynı ekranda bir adet ana CTA.
6) Mikro-Animasyon ve Easing Psikolojisi
-
easeOutQuad
(180–220 ms): hover/klik tepkisi—“canlı” hissi. -
easeInOutCubic
(240–420 ms): panel/sekme geçişleri—premium his. -
back/elastic
: Neşeli tonlarda sınırlı kullanın; form ekranlarında kapatın.
Tek baskın hareket: Aynı anda yalnız bir öğe baskın animasyon yapsın; odak dağılmasın.
7) Klavye Erişimi, Focus Ring ve Reduce Motion
-
TAB sırası mantıklı olmalı;
ENTER/SPACE
CTA’yı tetikler. -
Focus ring görünür; mouse kullanıcıları için de estetik ama belirgin.
-
Reduce Motion: Overshoot/back kapanır, süreler %30 kısalır, partikül/arka plan hareketi durur.
AS3 örneği – focus ve klavye tetik:
stage.addEventListener(KeyboardEvent.KEY_DOWN, function(e:KeyboardEvent):void{
if(e.keyCode==Keyboard.ENTER) primaryCTA.click();
});
8) Buton ve Etkileşim Kalıbı (AS3 İskeleti)
import flash.events.MouseEvent;
public class UIButton extends MovieClip {
public var enabled:Boolean = true;
public function UIButton() {
buttonMode = true; tabEnabled = true; // klavye için
addEventListener(MouseEvent.ROLL_OVER, onHover);
addEventListener(MouseEvent.ROLL_OUT, onOut);
addEventListener(MouseEvent.CLICK, onClick);
}
private function onHover(e:MouseEvent):void { gotoAndPlay(“hover”); }
private function onOut(e:MouseEvent):void { gotoAndPlay(“idle”); }
private function onClick(e:MouseEvent):void { if(enabled) dispatchEvent(new Event(“ui:click”)); }
}
Not: Durum kareleri idle/hover/active/disabled/loading
olarak timeline’da etiketlenmeli.
9) Formlar ve Validasyon: Hata Dilini Nazik Kurun
-
Saha düzeni: Etiket üstte, girdi alanı altta; ipucu (placeholder değil) ayrı.
-
Hata mesajı: Kısa, nazik, çözüm önerir (“En az 8 karakter, bir rakam ekleyin”).
-
Geribildirim türleri: inline hata, özet hata paneli, başarı toast’ı.
AS3 mini validasyon:
function validatePassword(t:String):Boolean {
var ok:Boolean = t.length>=8 && /[0-9]/.test(t);
hint.visible = !ok; // “Bir rakam ekleyin”
return ok;
}
10) Dinamik Menü ve Çok Düzeyli Navigasyon
-
Sezgisel derinlik: 2 düzey idealdir; 3’te breadcrumb zorunlu.
-
“Ben neredeyim?”: Aktif menüyü renk/çubukla belirtin.
-
Küçük ekran: Hamburger/çekmece; animasyonu 200–260 ms,
easeOutQuad
.
AS3: Menü seçimi olayı
goTo((e.target as MenuItem).route); // FSM ile ekran değiştir
});
11) Durum Makineleri (FSM) ile Ekran Akışı
Serbest gotoAndPlay
yerine FSM kullanın: giriş–idle–çıkış temizliği garanti.
var state:String=”HOME”;
function go(next:String):void{
if(current){ current.out(); detach(current); }
current = screens[next]; attach(current); current.in();
state = next;
}
Kazanç: “Girişi atla”, “geriye dön” gibi davranışlar stabil; bellek sızıntısı azalır.
12) Toast/Modal/Drawer: Dişlileri Çakıştırmadan Tasarlamak
-
Modal: Arka planı %30–40 karart;
ESC
kapatır; odak modal içinde döner. -
Drawer: Sağ/soldan kayan panel; ana içerik kaymamalı (gerekmedikçe).
-
Toast: 2–4 sn görünür, otomatik kapanır;
aria-live
eşleniği mantığında görsel hiyerarşi.
13) Bildirim ve Boş Durum (Empty State) Tasarımı
-
Boş durum: “Henüz veri yok” + tek cümleli yönlendirme + birincil CTA.
-
Yükleme: İskelet (skeleton) yerleşimi; spinner yalnız kısa yüklemelerde.
-
Hata: Nazik metin + “Tekrar dene” + “Destek” bağlantısı.
14) Tablo ve Kart Tasarımı (Okunurluk + Eylem)
-
Tablo: Satır yüksekliği 40–48 px; zebra bandı hafif. Satır içi butonlar yalnız “satır eylemi” olduğunda.
-
Kart: Görsel → başlık → ikincil metin → eylem; kart grid aralığı 16–24 px.
-
Sıralama/filtre: Sembollerin anlamı metinle desteklenmeli.
15) İkonografi ve Mikro Metin (Microcopy)
-
İkon seti: Çizgi kalınlığı tutarlı; 16/20/24 px grid.
-
Microcopy: Fiille başlar (“Kaydet”, “Gönder”); pasif çatıdan kaçının.
-
Kısaltma: Tooltiplere güvenmeyin; kritik metni görünür bırakın.
16) Yerelleştirme, RTL ve Metni Sahnenin Dışında Tutma
-
JSON/XML ile metinleri dışarı alın;
{name}
yer tutucular. -
RTL (Arapça vb.): ikon/ok yönleri aynalanır; metin hizası sağa.
-
Uzun metinler: 2 satır sınırı + ellipsis; tooltip yalnız açıklama için.
AS3 veri bağlama:
var L:URLLoader=new URLLoader();
L.addEventListener(Event.COMPLETE, onData);
L.load(new URLRequest(“i18n/tr.json”));
function onData(_:Event):void { ui.applyCopy(JSON.parse(L.data)); }
17) Tema/Skins: Açık–Koyu ve Marka Varyantları
-
Değişkenler: Renk, gölge, radius, spacing.
-
Koyu tema: Kontrast tuzaklarına dikkat; vurgu rengi “yanmamalı”.
-
Marka temaları: Aynı komponent seti farklı paletlerle çalışmalı; kod ayrışmaz.
18) Performans–Bellek Hijyeni: Uzun Oturumlar İçin 10 Kural
-
Görünmeyeni sahneden kaldır (
removeChild
),alpha=0
yetmez. -
Tek
ENTER_FRAME
döngüsü: tüm animasyon/akış merkezi. -
cacheAsBitmap: sabit vektörler; filtre yerine çizimle gölge.
-
Filtreler minimum; blur/glow pahalıdır.
-
Object pool: toast/partikül/etiket tekrarı.
-
Lazy load: ağır panelleri ilk açılışta yükle.
-
Çoklu çözünürlük bitmap (mobil/masaüstü).
-
Temizlik: Event/timer/tween/stream stop; modal/ekran kapanışında.
-
Profiling: Gerçek veriyle test; tahmin etme.
-
Poster: Medya gelmezse anlamlı ilk kare.
19) Güvenlik ve İzinler (AIR/Web)
-
Harici linklerde onay katmanı; XSS için whitelist/kaçış.
-
AIR paketlerde yerel dosya erişimiyle gizlilik; oturum verilerini şifreli saklayın.
-
Analitik/veri minimizasyonu: Yalnız davranışsal metrik; kişisel veri gerekmez.
21) Uygulamalı Mini Proje — “Rapor Stüdyosu”
Bağlam: Kurumsal raporlama UI.
Bileşenler: SidebarFilters
, TopTabs
, ReportTable
, ChartCard
, ExportModal
, Toast
.
Akış:
-
Sidebar filtreleri JSON’dan yüklenir; seçimde
change
olayı. -
Apply
CTA → skeleton tablo; veri gelince zebra tablo + grafik kartı. -
Export
→ modal (ESC ile kapanır, odak içeride). -
Hata → Toast: “Sunucuya ulaşılamadı — Tekrar dene”.
Kazanım: Skeleton yaklaşımı “algılanan performans”ı artırır; reduce motion’da yalnız crossfade.
22) Uygulamalı Mini Proje — “Eğitsel Görev Paneli”
Bağlam: K-12 uygulaması; görev listesi + ilerleme.
Bileşenler: TaskList
, ProgressRing
, StartCTA
, RewardToast
.
İlkeler: Büyük hit alan (≥ 64 px), sevimli ama nazik mikro-animasyon, ENTER
ile başlat, ESC
ile çık.
Sonuç: Focus ring ve büyük hit alanlar hatalı tıklamayı düşürür; tamamlanma oranı yükselir.
23) Ölçüm ve Analitik: UI’de Öğren–İlerle
-
Olaylar:
view:screen
,click:primary
,form:error
,modal:open/close
,toast:view
. -
KPI: Görev süresi, tıklama yolları, hatalı alan sıcak noktaları.
-
A/B: CTA metni, panel düzeni, tablo satır yüksekliği. Tek değişken kuralı geçerli.
24) Modern Köprü: Animate/Flash → HTML5/Canvas/GSAP
-
MovieClip → JS komponent, Timeline → GSAP timeline
-
enterFrame →
requestAnimationFrame
-
Sound → WebAudio (sessiz varsayılan)
-
SharedObject → LocalStorage/IndexedDB
-
Prefers-reduced-motion eşlemesi
Ders: Araçlar değişebilir; tek baskın hareket, erişilebilirlik, okunurluk, performans hijyeni kalıcıdır.
Sonuç
Flash uygulamalarında UI tasarımı, piksel hizasından çok insan davranışını anlamakla ilgilidir. Başarılı bir arayüz; net bilgi mimarisi, tek birincil eylem, renk–kontrast–tipografi ergonomisi, nazik mikro-animasyon ve erişilebilir kontrollerle akışa girer. Bu rehberde; grid ve komponent mimarisinden 9-slice/skin tekniklerine, buton/form/menü kalıplarından FSM tabanlı ekran geçişlerine, microcopy/ikonografi ve boş durum tasarımından Reduce Motion/klavye erişimine, performans–bellek hijyeninden analitik ve modern HTML5 köprüsüne kadar kapsamlı bir yol haritası sunduk.
Özetle; (1) IA’yı yaz, (2) primary action’ı sahnenin yıldızı yap, (3) tek baskın hareketle odağı koru, (4) erişilebilirlik ve Reduce Motion’ı ilk günden planla, (5) bellek–performansı ölçerek iyileştir, (6) metni sahnenin dışına al ve temalandır. Bu omurga; ister kurumsal bir rapor stüdyosu ister eğitsel bir görev paneli, ister ürün içi bir ayar ekranı olsun—Flash/Animate veya HTML5 tarafında akıcı, anlaşılır ve sürdürülebilir arayüzler üretmenizi sağlar.