Soru - Cevap Bölümü
/ Kategori: Programlama
Selam arkadaşlar.
Bir türlü aşamadığım bir problemim var; bildiğiniz gibi mx 2004 te form application ve scene moviler ayrı şeyler.
scene movilerde preloading yapmada pek sorun yaşayan kimse olduğunu sanmıyorum ancak ben form applicationları preloading yapamıyorum.
denemediğim metod kalmadı.örneğin bir preloading br ı ilk frame atıp onun üzerinden preloading uapmak istiyorum ama olmayınca olmuyor işte :)bir preloading (application preloading) kodu yazarsanız sevinirim.
(getbytesloaded içeren her varyeteyi denedim ama yinede ümidim var :)))
Cevaplar
( Faydalı Cevapları Göster )
onu da denedim ama form application ı scene içinden çağırdığın zaman componentler iptal oluyor örneğin window componentini başka bir form üzerinden işlettiğim için çalışmıyor.
form applicationda form larda level mantığı olmadığı içinde bu yöntem işe yaramıyor
maalesef..
Şimdi, normalde komponentleri önyüklemek için kullandığımız yöntemi kullanabilir miyiz diye baktım. Olamıyor, çünkü ne yazık ki form ların kendileri birer component olarak görünmüyor flash içinde. Bu tabii ki ben mx2004 ile çok haşır neşir olamadığımdan dolayı bilmediğim bir şeydi.
Normal koşullarda komponetleri preload edebildiğimize göre bunları da aynı mantıkta ~ "export in 1st frame" i iptal ederek ve sınıfların export edildiği frame i 1’den farklı bir frame yaparak ~ becerebileceğimizi düşündüm.
Bu yüzden "belki yer" (-: diye şunu yaptım :
- publish settings den classes bölümünde "1’de değil 2’de export et" dedim. Buna itiraz etmedi ama, export ederken de, tabii ki bunu dedi :
WARNING:
The Export Frame for Classes specified in the Publish or Export settings,
frame 2, does not exist.
No bytecode for ActionScript 2.0 classes or interfaces was exported.
Yani Flash sanki bu fla 1 frame den oluşuyormuş gibi bir izlenim bırakıyor ( hani göya main screen de 1 frame var gibi ). Sonuçta bu bir swf olduğu için, düşündüm ki, aslında frame ler var ama flash, ortamda bize göstermiyor.
Ben de swf yi decompile ettim. koda baktığımda frame ler var.
Tek bir formun olduğu bir swf yi decompile ettiğimde 2 frame gördüm. Bu sebeplerden ötürü bir kaç screen daha ekleyerek görünen frame sayısının artıp artmadığını baktım. Artmıyor, yani gördüğüm kadarıyla ( yanılmıyorsak ) bir form application sanırım hep 2 frame den oluşuyor (_root ta ).
Sonuç olarak _root dendiğinde bu tabii ki bir "swf" olduğu için preload da yüklenme bitince "100%" görünüyor ama aradaki yüklenmeyi göremiyoruz. Problem tam olarak AS2 sınıflarının 1.frame de export edilmesini önleyememek.
Flash bunun için bize bir yol sunmamış.
Buradaki problemin flash ortamında yapılabilecek bir değişiklikle halledilebileceğini sanmıyorum. Şu yapılabilir,denenebilir :
Form.as ve Screen.as dosyalarından bu sınıflar incelenebilir, burada aslında birer MovieClip olan formlara nasıl referans verildiğine bakılabilir. Ve buna göre düşünülür taşınılır.
Bir diğeri de swf kodu üzerinde değişiklik yapıp onu yine swf ye çeviren bi program ile kodu değiştirmek Bu tabii ki biraz extrem bir çözüm
(-: Yapılabilecek olan şey de şu :
> SWF disassemble edilecek orada girişe bir empty frame konacak. oradan preload yapılacak ve böylece AS2sınıfları diğer frame e kaymış olacak.
Tabi bu bir deli işi olsa gerek çünkü normal bir swf değil uğraştığımız, ,bir form application sonuç olarak. Haliyle burada yapılacak bir değişiklik normal bir swf üzerinde yapılabilecek değişikliklerden çok farklı olacaktır muhtemelen.
Benim aklıma gelenler bunlar…
En azından problemin nereden kaynaklandığını tespit etmiş olduk sanırsam.
iyi çalışmalar…
Sorunu buldum Flash MX 2004 componentleri çok fazla bug içeriyor ve Macromedia bunu kabul ediyor.
bu yüzden preloading yaptıramamışım
yeni Flash sürümünde bu hataların giderileceğini garanti ediyorlar.
bu bence,( sanırım )düşündüğün anlamda bir bug değil.
Çünkü, flash form application bir template ama, normal bir fla dan oluşturamıyoruz bu template i. Bu screen olayının halt yemesi (-:. Yapısal bir problem var. Bu ana screen, bir komponent mantığında timeline da yer almıyor. Orda görülen timeline, ana screen in timeline ı. Yani adamlar ne yazık ki bu konuda çuvallamışlar.. bunu nasıl giderecekler ben gerçekten çok merak ediyorum.
biraz kod deneyerek gördüm ki ana form _level0 da yer alıyor. Yani level mantığı var, ama flash bizden level0 ı, yani ana timeline ı saklıyor. problem de bu zaten ( böyle olmasaydı, ikinci bir frame yaratır, sınıfların preloader dan sonra yüklenmelerini sağlayabilirdik )
Fakat bahsettiğimiz yapıda, flash bizi "screen" adlı kutunun içine hapsetmiş. _parent a ulaşmak mümkün değil (authoring time da ).
var timeline = this
trace(timeline) // _level0.application
trace(typeof(timeline)) // movieclip
mx 2004 ü kaldırmak zorunda kaldım dün, ama sanırım aşağıdaki kodun sonucu "_level0" çıkmalı, düşündüklerim doğruysa :-
var mainTimeline = _parent
trace(mainTimeline) //_level0
iyi çalışmalar…
level mantığı yok derken kastettiğim "daha önce denedim ancak" _level uygulamalarında form applications hata veriyor…
yani senin bahsettiğin durum…
Macromedia’nın sitesinde yada forum unda bir çözüm önerisi yok sadece yeni sürümde sorunun düzeltileceği haberi var..
MMIstanbul Adobe UG
ColdFusion, Flex, AIR, Flash, PDF, Dreamweaver, Fireworks, Photoshop, Illustrator, INdesign, Premiere, Soundbooth, Lightroom, InCopy, JRun, LiveCycle, Acrobat, AfteEffects, Resmi Adobe Kullanıcı Grubu.
Etkinlikler
Konferans
2. Ulusal Yazılım Mimarisi Konferansı - UYMK'08
2. Ulusal Yazılım Mimarisi Konferansı - UYMK'08
2.Ulusal Yazılım Mimarisi Konferansı (UYMK’08), 11 – 12 Eylül 2008 tarihlerinde Ege Üniversitesi Bilgisayar Mühendisliği Bölümü ev sah...
Kategori:
Konferans
Kimler Burada? 
Son 1 dakika içinde MMIstanbul' da 148 (2 kayıtlı, 146 ziyaretçi) kullanıcı varmış. Login durumda olanlar aşağıda:
MMIstanbul Blog'undan
500 Hatası Hakkında!
merhaba arkadaşlar, bir önceki yazıda bahsettiğimiz üzere sunucunun ram ihtiyacını yavaş yavaş gidermeye başladık. An itibariyle 2 Giga d ...
Reklam, MMIstanbul ve Yeni Projeler (Durumumuz Bu Tarzında)
Ne Nedir Kampanyası Başlıyor!
Çok Merak Edenler için; MMIstanbul Geliştirme Ekibi ve Çalışma Ortamımız
MMIstanbul Online Seminerlerine Nasıl Katılabilirim?




Bu öneri çok basit olabilir, muhtemelen de düşünmüşsündür, ama : içinde, yüklenecek olan form application’ ı preload edecek bir swf yapılsa. yani :
bir swf yapıyoruz bu swf’ de leveln’ e veya boş bir klibe "form application" ı yüklüyoruz. nyüklemeyi de bu swf içinden yapıyoruz.
şu an bunu deneme şansım yok. o yüzden düşünmüşsen ya da işlemiyorsa ( ki işlemesi gerekir… ) kusura kalmayın artık (-:
iyi çalışmalar…