Tillbaka till förstasidan
Annons:

Buy and sell Flashcomponents, blogthemes or music and sound clips.

 

Bloggvänner

Fler sidor


  Alla Flashtips:

Automatically declare stage instances


Har du någonsin råkat ut för kompileringsfelet 1151: A conflict exists with definition foo in namespace internal när du använder Actionscript 3.0 i Flash CS3? Det är för att du har Automatically declare stage instances påslaget.

Med introduktionen av Actionscript 3.0 i Flash CS3 uppstod ett problem för Adobe. Hur ska instanser utlagda "för hand" på scenen i Flash refereras i en Actionscript 3 klass? I Actionscript 2 var detta inte några problem eftersom instanserna inte behövde deklareras, men Actionscript 3.0 kräver det.

Lösningen blev att Flash själv deklarerar instanserna som klassmedlemmar om man använder en dokumentklass eller kopplar en klass till ett MovieClip. Detta är naturligtvis bra när man gör snabbare saker och det underlättar för de som inte har djupare programmeringskunskaper. Men det kan också ställa till en hel del problem. Det gör koden svårare att följa och man får heller inte tillgång till code completion i utvecklingsverktygen eftersom instanserna deklareras av Flash först vid kompilering.

Som tur är finns det ett enkelt sätt att slå av detta:

  1. Välj File/Publish settings... (Ctrl+Shift+F12)
  2. I tabben Flash klicka på knappen Settings bredvid Actionscript version.
  3. Klicka ur rutan Automatically declare stage instances bredvid etiketten Stage.

Nu ska du inte längre få felmeddelandet, men tänk på att att du nu själv måste deklarera varje instans. De måste också deklareras som public, annars får du ytterligare kompileringsfel.

Standardvärdet för Automatically declare stage instances är att det är påslaget i Flash när man skapar en ny Flashfil. Det blir alltid några extra steg att gå igenom för varje ny flashfil som man skapar, och det finns alltid en risk att man glömmer det vilket leder till kompileringsfel. Man kan göra en ändring i en inställningsfil för Flash så att varje FLA-fil får Automatically declare stage instances avstängt.

Följ bara dessa steg:

  1. Leta upp filen default.xml som finns i mappen C:\Users\{username}\AppData\Local\Adobe\Flash CS3\en\Configuration\Publish Profiles (förutsatt Flash är installerat i den mapp installationsprogrammet föreslår).
  2. Gå till rad 73 där det ska stå 1
  3. Ändra 1 till 0 så att det nu istället står 0
  4. Spara filen och starta om Flash.

Det finns många andra inställningar du kan göra om du är missnöjd vad som vad som är påslaget av standard i Flash. Detta är vad som definieras och därmed kan ändras i default.xml:

<flash_profile version="1.0" name="Default">
  <PublishFormatProperties enabled="true">
    <defaultNames>1</defaultNames>
    <flash>1</flash>
    <generator>0</generator>
    <projectorWin>0</projectorWin>
    <projectorMac>0</projectorMac>
    <html>0</html>
    <gif>0</gif>
    <jpeg>0</jpeg>
    <png>0</png>
    <qt>0</qt>
    <rnwk>0</rnwk>
    <flashDefaultName>1</flashDefaultName>
    <generatorDefaultName>1</generatorDefaultName>
    <projectorWinDefaultName>1</projectorWinDefaultName>
    <projectorMacDefaultName>1</projectorMacDefaultName>
    <htmlDefaultName>1</htmlDefaultName>
    <gifDefaultName>1</gifDefaultName>
    <jpegDefaultName>1</jpegDefaultName>
    <pngDefaultName>1</pngDefaultName>
    <qtDefaultName>1</qtDefaultName>
    <rnwkDefaultName>1</rnwkDefaultName>
    <flashFileName>Untitled-1.swf</flashFileName>
    <generatorFileName>Untitled-1.swt</generatorFileName>
    <projectorWinFileName>Untitled-1.exe</projectorWinFileName>
    <projectorMacFileName>Untitled-1.hqx</projectorMacFileName>
    <htmlFileName>Untitled-1</htmlFileName>
    <gifFileName>Untitled-1.gif</gifFileName>
    <jpegFileName>Untitled-1.jpg</jpegFileName>
    <pngFileName>Untitled-1.png</pngFileName>
    <qtFileName>Untitled-1.mov</qtFileName>
    <rnwkFileName>Untitled-1.smil</rnwkFileName>
  </PublishFormatProperties>
  <PublishHtmlProperties enabled="true">
    <Width>550</Width>
    <Height>400</Height>
    <Align>0</Align>
    <Units>0</Units>
    <Loop>1</Loop>
    <StartPaused>0</StartPaused>
    <Scale>0</Scale>
    <HorizontalAlignment>1</HorizontalAlignment>
    <VerticalAlignment>1</VerticalAlignment>
    <Quality>4</Quality>
    <WindowMode>0</WindowMode>
    <DisplayMenu>1</DisplayMenu>
    <DeviceFont>0</DeviceFont>
    <TemplateFileName>Default.html</TemplateFileName>
    <showTagWarnMsg>1</showTagWarnMsg>
  </PublishHtmlProperties>
  <PublishFlashProperties enabled="true">
    <TopDown>0</TopDown>
    <Report>0</Report>
    <Protect>0</Protect>
    <OmitTraceActions>0</OmitTraceActions>
    <Quality>80</Quality>
    <StreamFormat>0</StreamFormat>
    <StreamCompress>7</StreamCompress>
    <EventFormat>0</EventFormat>
    <EventCompress>7</EventCompress>
    <OverrideSounds>0</OverrideSounds>
    <Version>9</Version>
    <ExternalPlayer></ExternalPlayer>
    <ActionScriptVersion>3</ActionScriptVersion>
    <PackageExportFrame>1</PackageExportFrame>
    <PackagePaths></PackagePaths>
    <AS3PackagePaths></AS3PackagePaths>
    <DocumentClass></DocumentClass>
    <AS3Strict>1</AS3Strict>
    <AS3Coach>1</AS3Coach>
    <AS3AutoDeclare>0</AS3AutoDeclare>
    <AS3Dialect>AS3</AS3Dialect>
    <AS3ExportFrame>1</AS3ExportFrame>
    <DebuggingPermitted>0</DebuggingPermitted>
    <DebuggingPassword></DebuggingPassword>
    <CompressMovie>1</CompressMovie>
    <FireFox>0</FireFox>
    <DeviceSound>0</DeviceSound>
    <StreamUse8kSampleRate>0</StreamUse8kSampleRate>
    <EventUse8kSampleRate>0</EventUse8kSampleRate>
  </PublishFlashProperties>
  <PublishJpegProperties enabled="true">
    <Width>550</Width>
    <Height>400</Height>
    <Progressive>0</Progressive>
    <DPI>4718592</DPI>
    <Size>0</Size>
    <Quality>80</Quality>
    <MatchMovieDim>1</MatchMovieDim>
  </PublishJpegProperties>
  <PublishRNWKProperties enabled="true">
    <exportFlash>1</exportFlash>
    <flashBitRate>12</flashBitRate>
    <exportAudio>1</exportAudio>
    <audioFormat>0</audioFormat>
    <singleRateAudio>0</singleRateAudio>
    <realVideoRate>100000</realVideoRate>
    <speed28K>1</speed28K>
    <speed56K>1</speed56K>
    <speedSingleISDN>0</speedSingleISDN>
    <speedDualISDN>0</speedDualISDN>
    <speedCorporateLAN>0</speedCorporateLAN>
    <speed256K>0</speed256K>
    <speed384K>0</speed384K>
    <speed512K>0</speed512K>
    <exportSMIL>1</exportSMIL>
  </PublishRNWKProperties>
  <PublishGifProperties enabled="true">
    <Width>550</Width>
    <Height>400</Height>
    <Animated>0</Animated>
    <MatchMovieDim>1</MatchMovieDim>
    <Loop>1</Loop>
    <LoopCount></LoopCount>
    <OptimizeColors>1</OptimizeColors>
    <Interlace>0</Interlace>
    <Smooth>1</Smooth>
    <DitherSolids>0</DitherSolids>
    <RemoveGradients>0</RemoveGradients>
    <TransparentOption></TransparentOption>
    <TransparentAlpha>128</TransparentAlpha>
    <DitherOption></DitherOption>
    <PaletteOption></PaletteOption>
    <MaxColors>255</MaxColors>
    <PaletteName></PaletteName>
  </PublishGifProperties>
  <PublishPNGProperties enabled="true">
    <Width>550</Width>
    <Height>400</Height>
    <OptimizeColors>1</OptimizeColors>
    <Interlace>0</Interlace>
    <Transparent>0</Transparent>
    <Smooth>1</Smooth>
    <DitherSolids>0</DitherSolids>
    <RemoveGradients>0</RemoveGradients>
    <MatchMovieDim>1</MatchMovieDim>
    <DitherOption></DitherOption>
    <FilterOption></FilterOption>
    <PaletteOption></PaletteOption>
    <BitDepth>24-bit with Alpha</BitDepth>
    <MaxColors>255</MaxColors>
    <PaletteName></PaletteName>
  </PublishPNGProperties>
  <PublishQTProperties enabled="true">
    <Width>550</Width>
    <Height>400</Height>
    <MatchMovieDim>1</MatchMovieDim>
    <UseQTSoundCompression>0</UseQTSoundCompression>
    <AlphaOption></AlphaOption>
    <LayerOption></LayerOption>
    <QTSndSettings>00000000</QTSndSettings>
    <ControllerOption>0</ControllerOption>
    <Looping>0</Looping>
    <PausedAtStart>0</PausedAtStart>
    <PlayEveryFrame>0</PlayEveryFrame>
    <Flatten>1</Flatten>
  </PublishQTProperties>
</flash_profile>