TypeError: Error #1009

erfan.h

Member
سلام
من یه موی کلیپ دارم که وقتی روی اون کلیک می کنم به scene می ره
وقتی به scene دوم می ره این پیغام رو در پنل output می ده
PHP:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
    at fisa_fla::MainTimeline/mu()
من مشکلی با برنامه ندارم فقط وقتی که برنامه رو در ویندوز باز می کنم (بدون ctrl+enter )این پیغام میاد
کد های اون جا
PHP:
import flash.events.MouseEvent;

stop();
m1.addEventListener(MouseEvent.MOUSE_OVER,mo);
m2.addEventListener(MouseEvent.MOUSE_OVER,mo1);
m1.addEventListener(MouseEvent.MOUSE_OUT,mu);
m2.addEventListener(MouseEvent.MOUSE_OUT,mu1);
m1.addEventListener(MouseEvent.MOUSE_UP,mUP);

function mo(evt:MouseEvent):void{
    sb.es.gotoAndPlay(2);
}
function mu(evt:MouseEvent):void{
    sb.es.gotoAndPlay(12);
}
function mo1(evt:MouseEvent):void{
    sb.ba.gotoAndPlay(2);
}
function mu1(evt:MouseEvent):void{
    sb.ba.gotoAndPlay(12);
}
function mUP(evt:MouseEvent):void{
gotoAndStop(1, "Scene 2");
}
 

پیوست ها

  • 1-6-2012 11-51-05 AM.png
    1-6-2012 11-51-05 AM.png
    11.1 کیلوبایت · بازدیدها: 6

++Hadi++

Active Member
توی منوی :File->Publish SEttings->Flash Tab->Permot Debugging باعث می شه مکان خطای ران تایم مشخص شه.
بهتره تو ورد به هر scene تمام event های جایی که هستید رو پاک کنید و بعد وارد scene شید.ذقیقا کد خطا رو پیدا کنید و بگید.شاید تو انتقال از یه scene به یه scene دیگه به یه شی null رسیدید.
 

akherat

مدیر انجمن
دوست عزىز
پىشنهاد مىکنم از scene استفاده نکنى
همه ى اىتم هاى اون scene زود برىز اون ىه movieclip و هر موقع خواستى وىزىبلشو true ىا false کن
 

erfan.h

Member
ممنون event ها رو پاک کردم درست شد
دوست عزىز
پىشنهاد مىکنم از scene استفاده نکنى
همه ى اىتم هاى اون scene زود برىز اون ىه movieclip و هر موقع خواستى وىزىبلشو true ىا false کن
درسته ولی به این روش تایم لاین و stage خیلی شلوغ می شه و کار کردن سخت تر می شه
 
آخرین ویرایش:

erfan1363

New Member
برنامه اکشن اسکریپت فلش سی هس 4 من درست کار نمیکند.
در فراخوانی کلاسها و پکیجها خطای not fond میزند.
لطفا کمک کنید
با عرض احترام.
 

erfan1363

New Member
لطفا یکی جواب بده
کلسهای اکشن اسکریپت من کار نمیکنه.
همه ورژنهای فلش رو نصب کردم. روی دو تا کامپیوتر ولی باز هم جواب نداد.
در فراخوانی با import دچار مشکل میشود.
کلاسهای کتابخانه ای را نمیخواند.
لطفا راهنمایی کنید.
 

++Hadi++

Active Member
کلاسها رو باید بغل فایل بزارید و باید package کلاسها مطابق با فولدر بندی به نسبت فایل اصلی (document class) شما باشه...حالا اگه فایل fla اصلی یا main شما تنظیم شده باشند یعنی اگه مثلا فایل fla شما تو شاخه اصلی و مثلا کلاس main تو فولدر classes باشه باید تو ابتدای main نوشته باشه :
package classes
و هر جا بهش آدرس می دین باید بنویسین:
classes.main
برا اطلاعات بیشتر به امضای من و آموزش اکشن 3 از صفر و فصل چهارم یا شی گرایی مراجعه نمایید...موفق باشید...
 

erfan1363

New Member
با سلام
بسیار از لطف شما سپاسگذارم.
شاید کمی منظور خودم را بد رساندم.

اگه قطعه کد زیر را در نظر بگیرید.
import flash.text.TextFieldAutoSize; import fl.controls.Label; var testString:String = "Lorem ipsum dolor sit amet."; var label1:Label = new Label(); var label2:Label = new Label(); var label3:Label = new Label(); label1.move(10,10); label2.move(10,50); label3.move(10,90); label1.width = stage.stageWidth - 20; label2.width = stage.stageWidth - 20; label3.width = stage.stageWidth - 20; label1.text = testString; label2.text = testString; label3.text = testString; label1.autoSize = TextFieldAutoSize.LEFT; label2.autoSize = TextFieldAutoSize.CENTER; label3.autoSize = TextFieldAutoSize.RIGHT; addChild(label1); addChild(label2); addChild(label3);

تا یک لیبل به کتابخانه اضافه نکنیم کد بالا جواب نمیدهد.
میخواهم بدون اضافه کردن لیبل به کتابخانه کد بالا جواب بدهد و در استفاده از addchild لیبل به صحنه اضافه شود.
در مورد پکیجها وضع بدتر است.
و حتی اگر لیبل به کتابخانه اضافه شود باز هم هیچ گونه اتصالی بین اکشن اسکریپت و لیبلها بوجود نمی اید.
به طوری که کوچکترین تغییراتی را در وضعیت لیبل نمیتوانیم انجام بدهیم.
امیدوارم منظور خود را به درستی رسانده باشم.
در ضمن برروی دو سیستم مختلف هم این کار شده است ولی نتیجه یکسان است.
با تشکر از شما دوست عزیز
 

erfan1363

New Member
با سلام
بسیار از لطف شما سپاسگذارم.
شاید کمی منظور خودم را بد رساندم.

اگه قطعه کد زیر را در نظر بگیرید.

import flash.text.TextFieldAutoSize;

import fl.controls.Label;


var testString:String = "Lorem ipsum dolor sit amet.";

var label1:Label = new Label();

var label2:Label = new Label();

var label3:Label = new Label();

label1.move(10,10);

label2.move(10,50);

label3.move(10,90);

label1.width = stage.stageWidth - 20;

label2.width = stage.stageWidth - 20;

label3.width = stage.stageWidth - 20;

label1.text = testString;

label2.text = testString;

label3.text = testString;

label1.autoSize = TextFieldAutoSize.LEFT;

label2.autoSize = TextFieldAutoSize.CENTER;

label3.autoSize = TextFieldAutoSize.RIGHT;

addChild(label1
);
addChild(label2);

addChild(label3
);

تا یک لیبل به کتابخانه اضافه نکنیم کد بالا جواب نمیدهد.
میخواهم بدون اضافه کردن لیبل به کتابخانه کد بالا جواب بدهد و در استفاده از addchild لیبل به صحنه اضافه شود.
در مورد پکیجها وضع بدتر است.
و حتی اگر لیبل به کتابخانه اضافه شود باز هم هیچ گونه اتصالی بین اکشن اسکریپت و لیبلها بوجود نمی اید.
به طوری که کوچکترین تغییراتی را در وضعیت لیبل نمیتوانیم انجام بدهیم.
امیدوارم منظور خود را به درستی رسانده باشم.
در ضمن برروی دو سیستم مختلف هم این کار شده است ولی نتیجه یکسان است.
با تشکر از شما دوست عزیز
 

aliamel

کاربر فعال
دوست گرامی مراحلی که باید انجام بدی به این صورت خواهند بود :
1- اضافه کردن یک کامپوننت Label به سند فلش (fla) . برای این منظور پانل component را باز کرده و یک Label به داخل پانل liberary بکشید .
2- افزودن کلاس Label به سند اکشن اسکریپت (as):
PHP:
import fl.controls.Label;
3- تعریف و پیکر بندی Label در سند اکشن اسکریپت :
PHP:
public var label1:Label = new Label();
 label1.move(10,10);
 label1.htmlText = myString;
 addChild(label1);
4- استفاده از متد() addChild به منظور افزودن یک Label :
PHP:
addChild(label1)
 

جدیدترین ارسال ها

بالا