До сих пор я был полностью в шоке от этого, и у меня было несколько дней на нем, и большинство ссылок, которые я следил, и поиски, которые я выполнил, привели меня к нулю.Как использовать ActionScript «Классы» с файлом Flex MXML?
Я хочу сделать простую игру с интерфейсом мыши, но я также хотел добавить прелоадер. Сначала я использовал minibuilder, поскольку он является кросс-платформенным, и я нахожусь в Linux, но все учебные пособия, которые я видел для добавления прелоадера, казались ему несовместимыми.
Таким образом, я перешел к простому компилятору Flex и текстовому редактору напрямую, но мне не повезло, и даже прелоадер (который, кажется, единственный, который действительно работает), является простой копией из учебник, который, случайно, работал.
В идеале я хотел бы просто использовать файл MXML, чтобы указать на preloader - с файлом CustomPreloader.as для preloader - и запустить классы ActionScript, возможно, используя FlashPunk вместе с моим кодом, чтобы помочь.
Это код до сих пор, для каждого из файлов, кроме CustomPreloader.as, как прелоадер уже работает: (Примечание: Все файлы находятся в ~/ASClasses/ЦСИ)
File: ASClasses.mxml
--------------------
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
backgroundColor="#333333"
creationComplete="init();"
width="800" height="500"
frameRate="60"
preloader="CustomPreloader"
>
<mx:Script>
<![CDATA[
//This part is mostly for testing purposes
//========================================
import mx.controls.Alert;
public function init():void {
Alert.show("The first function works.");
}
//And this is what I actually wanted to do
//========================================
import Application;
//Whenever I uncomment the following line, some error is thrown and the init function stops working at all.
//public var myApp:Application = new Application;
//addChild(myApp);
]]>
</mx:Script>
</mx:Application>
File: Application.as
--------------------
package{
import flash.display.Shape;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.display.Sprite;
public class Application extends Sprite{
public function Application(){
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
stage.frameRate = 60;
rotationX = -45;
var s:Shape = new Shape;
s.x = 400;
s.y = 200;
s.rotation = 90;
addChild(s);
}
addEventListener('enterFrame', function(e:Event):void{
s.rotation += 2.5;
});
}
}
Однако раскомментирована линия, необходимой для добавления Application.as кажется просто выдаст ошибку, так что я думаю, что я либо промах какой-то код или что я сделал что-то неправильно.
Есть ли кто-нибудь, кто мог бы научить меня больше об этом, пожалуйста? И хотя я хотел бы сказать, что у меня есть некоторый опыт работы с Actionscript, в этот момент я уже так сильно подчеркивал, что не могу этого сделать, я бы предпочел, если не спросить, быть объясненным простым способом, предполагая, что у меня нет прежних знаний.
Кроме того, если есть простые и простые в использовании простые учебники для создания простой/упрощенной игры/демо, я бы тоже признал, что, как и большинство учебников, которые я видел до сих пор, только документы Flex и Actionscript, и легко усложнится, прежде чем я действительно смог что-то сделать.
Заранее спасибо.
Редактировать 1: Кроме того, может быть стоит упомянуть, что способ, которым он в настоящее время, по-прежнему удаляет оповещение после загрузки.
Спасибо, но это все-таки бросил ошибку при компиляции, хотя : «Ошибка: это ключевое слово нельзя использовать в статических методах. Его можно использовать только в методах экземпляра, закрытии функций и глобальном коде». Спасибо за попытку помочь хотя бы, я действительно теряю то, что нужно делать прямо сейчас. – Devvie
Я отредактировал ответ, вы должны добавить myApp в функцию. – Pan
Спасибо, что решили проблему компиляции! По-прежнему существует проблема с тем, что сам класс просто бросает ошибку, когда я нажимаю на экран, но я буду принимать ваш ответ, поскольку он помог с проблемой, которую я опубликовал. Еще раз спасибо! – Devvie