probleme flash

Intrebari despre Actionscript 3.0

probleme flash

Mesajde myth » Vin Iul 08, 2011 2:52 am

sal... am intampinat ceva probleme in flash la care nu gasesc nicicum raspuns, si anume:

1) am introdus un textfield intr-un movieclip, si daca vreau pe urma sa modific culoarea acelui textfield trebuie sa-l apelez cu (mc.textfield as TextField) ca sa pot sa-i aplic noul format nu? asa ar fi normal dar mie imi da eroarea : "TypeError: Error #1009: Cannot access a property or method of a null object reference.
at Function/<anonymous>()"

cod:
Cod: Selectaţi tot
var section:TextField=new TextField();
section.text=s[m];
section.selectable=false;
var format:TextFormat=new TextFormat();
format.color=0x000000;
format.size=12;
format.font="Unispace";
section.setTextFormat(format);
........
(cont.getChildAt(m) as MovieClip).addChild(section);
.......
.......
function mcClk(e:MouseEvent):void
{
var format2:TextFormat=new TextFormat();
format2.color=0xCC6600;
((e.currentTarget as MovieClip).getChildAt(0) as TextField).setTextFormat(format2);
}

imi recunoaste instanta daca dau trace la e.currentTarget.getChild(0), iar ca sa pot atribui un format textuluiu trebuie sa specific tipul obiectului cu "as TextField", dar imi da eroarea care am scris-o mai sus :shock:

2) nu stiu de ce la stage.height imi da niste valori aiurea, cam random; am citit ceva pe net ca poate fi de la Bandwidth Profiler dar la mine nici nu-i activat

aici am setarile de la publish settings:
http://i.imgur.com/Mb4fn.jpg

si codul:
http://i.imgur.com/X3cOq.jpg

in prima linie imi da dimensiunile 1680x1050 care sunt corecte, astea le apelez chiar in primul frame... iar cand apelez stage.height in cadrul unui movie clip din acel frame imi da valori gresite:

stage height: 1102.9 <--- valoare din afara functiei fdown
stage height: 1788.75 <---- valoare in cadrul functiei fdown

in functia fdown vreau sa pun o imagine fullscreen, si o micsorez in functie de inaltimea scenei; din cate stiu eu daca am setat dimensiunea scenei de 100% in publish settings, dimensiunile acesteia vor fi de fapt cele ale browserului

ceva idei? ca pe mine ma cam depaseste :|
myth
 
Mesaje: 51
Membru din: Lun Mai 04, 2009 5:23 pm

Re: probleme flash

Mesajde Barna Biro » Vin Iul 08, 2011 3:11 am

1) Probabil copilul returnat de pe indexul 0, nu este un TextField. Asta daca problema e la linia cu TextField-ul... daca nu, atunci o alta referinta este nula ( probabil din cauza castuirii la tipul gresit ).

2) Foloseste stage.stageHeight si respectiv stage.stageWidth.

EDIT:

daca vreau pe urma sa modific culoarea acelui textfield trebuie sa-l apelez cu (mc.textfield as TextField) ca sa pot sa-i aplic noul format nu?

E o abordare si ce ai postat... dar nu este una prea eleganta. Daca vrei o solutie mai eleganta, atunci incearca sa studiezi un pic principiile OOP si mai exact, incearca "sa te joci" cu incapsularea.

PS: Nu definii functii in functii... nu este cool.
Imagine
Avatar utilizator
Barna Biro
Administrator
 
Mesaje: 2037
Membru din: Vin Iul 25, 2008 1:06 am
Localitate: Lucerne, Switzerland

Re: probleme flash

Mesajde myth » Vin Iul 08, 2011 3:43 am

mersi de raspuns

1) intr-adevar textfieldu era pe pozitia 1 si nu pe 0
2) am verificat si inainte sa postez prima data stage.stageHeight si imi dadea valori random dar aproape de val buna.... acuma am testat din nou si minune imi da valoarea buna.. interesant :)
myth
 
Mesaje: 51
Membru din: Lun Mai 04, 2009 5:23 pm

Re: probleme flash

Mesajde myth » Vin Iul 08, 2011 5:06 am

am probleme la amplasarea unui movieclip in centrul browserului... orice formule de calcul as pune, reusesc sa-mi apara bine la rez 1680x1050 dar cand trec pe laptop la 1366x768 imi apare rau si viceversa;

mainMC.x=stage.width/2-mainMC.width/2;
mainMC.y=stage.stageHeight/2-mainMC.height/2;

asa am scris codul, iar dimensiunea scenei o puneam sa fie aceasi cu rezolutia ecranului... ce nu fac bine? :?

stage.width si stage.stageHeight nu sunt dimensiunile browserului?
myth
 
Mesaje: 51
Membru din: Lun Mai 04, 2009 5:23 pm

Re: probleme flash

Mesajde myth » Vin Iul 08, 2011 5:37 am

ar cam trebui un buton de edit pe forumul asta :))

EDIT: am observat ca-mi arata in cod ca movieclipul are mai mult width si height cu 70 pixeli fata de cat imi arata in scena... oare din ce cauza?
myth
 
Mesaje: 51
Membru din: Lun Mai 04, 2009 5:23 pm

Re: probleme flash

Mesajde myth » Vin Iul 08, 2011 6:33 am

nevermind :)
myth
 
Mesaje: 51
Membru din: Lun Mai 04, 2009 5:23 pm

Re: probleme flash

Mesajde Barna Biro » Vin Iul 08, 2011 2:13 pm

Referitor la stage.width vs stage.stageWidth: http://flexmusings.wordpress.com/2010/1 ... ageheight/ In esenta, se rezuma treaba la:

If you want to know the current viewable area, use stage.stageWidth and stage.stageHeight.

If you want to know the composite, total area occupied by display objects, you can use the stage.width and stage.height properties (or the getBounds() or getRect() methods).

Iar referitor la pozitionare: incearca sa ai mereu puntul de inregistrare al obiectului in coltul din stanga-sus ( pe coordonatele: 0,0 ). Daca creezi un obiect programatic de exemplul, punctul de inregistrare e implicit stanga-sus. Stiind acest lucru ( ca toate obiectle tale au mereu punctul de inregistare TOP_LEFT ) o sa iti fie si mai usor sa manipulezi obiectele intr-un mod uniform ( fara sa fi nevoit sa scrii formule de rezpotionare sau de rotire, etc. separate pentru obiecte particulare care au punctul de inregistrare intr-un alt loc decat TOP_LEFT ).
Imagine
Avatar utilizator
Barna Biro
Administrator
 
Mesaje: 2037
Membru din: Vin Iul 25, 2008 1:06 am
Localitate: Lucerne, Switzerland

Re: probleme flash

Mesajde myth » Vin Iul 08, 2011 5:40 pm

da... o trebuit sa aranjez putin obiectele; imi redimensiona movieclipul din cod deoarece cream niste movieclipuri ce ieseau afara din mc
myth
 
Mesaje: 51
Membru din: Lun Mai 04, 2009 5:23 pm


Înapoi la ActionScript 3.0

Cine este conectat

Utilizatorii ce navighează pe acest forum: Niciun utilizator înregistrat şi 1 vizitator

cron