Я думаю, что вы либо сделали что-то не так, когда скопировали код в SO, либо неправильно разместили операторы trace.Вам нужно поместить trace("This is TestOne");
внутри конструктора в TestOne.as, например:
public function TestOne() {
trace("This is TestOne");
}
То же самое относится и к коду внутри класса Init, который теперь читает:
trace("This is Main Class");
var testOne : TestOne = new TestOne;
но должно быть (обратите внимание на браслеты после нового TestOne):
public function Init() {
trace("This is Main Class");
var testOne : TestOne = new TestOne();
}
Что происходит при запуске SWF, так это то, что конструктор класса Init
будет:
1Трассировка «Это главный класс» на вашу консоль.
2) Он создаст новый объект (то есть конструктор имени), вызвав конструктор класса TestOne
.
ЕслиВы должны были добавить эту строку в конец конструктора в классе Init
:
testOne.testing();
, вы должны увидеть это в консоли: «Это метод тестирования».
Если вы сейчас закомментируете строку: var testOne : TestOne = new TestOne();
и снова запустите SWF, вы получите сообщение об ошибке, сообщающее, что что-то является нулевым.Это потому, что вы пытаетесь вызвать метод testing
для несуществующего объекта.
Я понимаю, что это в первую очередь исправление некоторых ваших ошибок кодирования, а не так много, чтобы помочь вам понять ООП.Но, надеюсь, вы можете получить некоторую помощь относительно строительства объекта.Я вижу, что в некоторых ответах уже упоминается ключевой принцип ООП, который вы действительно должны изучить.
Редактировать:
Помните, что дублирование кода никогда не бывает полезным, поэтому, если вы обнаружите, что все классы TestOne- TestFive содержит тот же код, за исключением некоторых мелких деталей.Возможно, вам следует заменить их на один класс.
В вашем случае вы можете, например, изменить TestOne, чтобы конструктор принимал String
, а затем в вашей функции testing
вы могли бы просто отследить, что String
,Изменив класс TestOne на следующий, вы фактически избавитесь от 4 других классов.Вы также инкапсулируете String
внутри класса TestOne.
package classes {
import flash.display.MovieClip;
public class TestOne extends MovieClip {
private var message : String;
public function TestOne(myMessage:String) {
message = myMessage;
trace("This is TestOne");
}
public function testing() : String {
return message;
}
}
}